熊猫据帧条件均值
问题描述:
这将是最简单的解释开始数据帧的样本:熊猫据帧条件均值
TimeStamp 382.098 382.461 383.185 383.548
10:28:00 0.012448 0..0124485 0.
10:30:00 0.0124135 0..0124135 0.012431
10:32:00 0.0551035 0.0551725 0.055931 0.0563105
10:34:00 0.055586 0.0557245 0.056655 0.0569485
10:36:00 0.055586 0.055776 0.0568105 0.057362
我希望我的输出是:
TimeStamp 382 383
10:28:00 0.012405 0.01240525
10:30:00 0.012405 0.01242225
10:32:00 0.05513 0.05612075
10:34:00 0.05565525 0.05680175
10:36:00 0.055681 0.05708625
所以,我希望查看列名值,并且如果它们与整数相同,我希望输出列具有每次索引值的值的均值。
我的想法是使用df.round列标题四舍五入到最接近的整数,然后使用.mean()以某种方式施加的平均上轴= 0相同的山口头。但是,我在数据帧索引类型上使用循环函数时出现错误。
答
df.rename(columns=dict(zip(df.columns[1:], df.columns[1:]\
.values.astype(float).round().astype(str))),inplace=True)
df.set_index('TimeStamp').groupby(df.columns[1:],
axis=1).mean().reset_index()
答
重命名列与类型转换,移动TimeStamp
索引,然后使用groupby
获得列装置:
df.rename(columns=lambda x: int(float(x)) if x!="TimeStamp" else x, inplace=True)
df.set_index("TimeStamp", inplace=True)
df
382 382 383 383
TimeStamp
10:28:00 0.012448 0..012448 0.
10:30:00 0.012414 0..012414 0.012431
10:32:00 0.055103 0.055172 0.055931 0.056310
10:34:00 0.055586 0.055725 0.056655 0.056948
10:36:00 0.055586 0.055776 0.056810 0.057362
df.groupby(df.columns, axis=1).mean()
382 383
TimeStamp
10:28:00 0.012405 0.012405
10:30:00 0.012405 0.012422
10:32:00 0.055138 0.056121
10:34:00 0.055655 0.056802
10:36:00 0.055681 0.057086
答
使用groupby
连同lambda
所述第一轴线。
df.set_index('TimeStamp', inplace=True)
df.groupby(by=lambda x: int(x.split('.')[0]), axis=1).mean()
382 383
TimeStamp
10:28:00 0.012405 0.012405
10:30:00 0.012405 0.012422
10:32:00 0.055138 0.056121
10:34:00 0.055655 0.056802
10:36:00 0.055681 0.057086
+0
想念你这么多〜:-) – Wen
+0
@Wen也想你,哥们OL。 –
是?如果您需要从答案中得到澄清,请索取。谢谢。 –