【发布时间】:2021-11-26 01:10:29
【问题描述】:
我正在处理这个需要清理的原始数据框。到目前为止,我已经转换了这个 xlsx 文件
进入这个熊猫数据框:
print(df.head(16))
date technician alkalinity colour uv ph turbidity \
0 2020-02-01 00:00:00 Catherine 24.5 33 0.15 7.24 1.53
1 Unnamed: 2 NaN NaN NaN NaN NaN 2.31
2 Unnamed: 3 NaN NaN NaN NaN NaN 2.08
3 Unnamed: 4 NaN NaN NaN NaN NaN 2.2
4 Unnamed: 5 Michel 24 35 0.152 7.22 1.59
5 Unnamed: 6 NaN NaN NaN NaN NaN 1.66
6 Unnamed: 7 NaN NaN NaN NaN NaN 1.71
7 Unnamed: 8 NaN NaN NaN NaN NaN 1.53
8 2020-02-02 00:00:00 Catherine 24 NaN 0.145 7.21 1.44
9 Unnamed: 10 NaN NaN NaN NaN NaN 1.97
10 Unnamed: 11 NaN NaN NaN NaN NaN 1.91
11 Unnamed: 12 NaN NaN 33.0 NaN NaN 2.07
12 Unnamed: 13 Michel 24 34 0.15 7.24 1.76
13 Unnamed: 14 NaN NaN NaN NaN NaN 1.84
14 Unnamed: 15 NaN NaN NaN NaN NaN 1.72
15 Unnamed: 16 NaN NaN NaN NaN NaN 1.85
temperature
0 3
1 NaN
2 NaN
3 NaN
4 3
5 NaN
6 NaN
7 NaN
8 3
9 NaN
10 NaN
11 NaN
12 3
13 NaN
14 NaN
15 NaN
从这里开始,我想合并这些行,以便每个日期只有一行。每行的值将是相应列中的平均值。即。
print(new_df.head(2))
date time alkalinity colour uv ph turbidity temperature
0 2020-02-01 00:00:00 24.25 34 0.151 7.23 1.83 3
1 2020-02-02 00:00:00 24 33.5 0.148 7.23 1.82 3
当我的日期列中有未命名的值时,我该如何做到这一点?谢谢!
【问题讨论】:
-
我会建议 pandas groupby 功能,但是,如果那些未命名的值没有用,那么它们可以被过滤掉吗?
-
我需要使用这些值来计算平均值。如果你看一下上面的 xlsx 文件,日期跨越了 8 列。
-
好的,那么您将必须知道哪个未命名属于哪个日期以及在数据转换后执行 groupby
-
是的,这就是我一直在问的。如何将日期列中的
Unnamed值替换为真实日期? -
好的,我已经发布了一个可以参考的解决方案或给出的其他答案。
标签: python pandas dataframe pandas-groupby nan