我在使用Pandas的groupby转换数据时遇到问题。我有一个要按“日期”变量分组的表(几百万行和3个变量)。
原始表中的代码段
Date V1 V2
07_19_2017_17_00_06 10 5
07_19_2017_17_00_06 20 6
07_19_2017_17_00_08 15 3
...
01_07_2019_14_06_59 30 1
01_07_2019_14_06_59 40 2
目标是通过在V1上应用均值函数并在V2上应用求和函数,将具有相同“ Date”值的行分组。这样预期结果类似于:
Date V1 V2
07_19_2017_17_00_06 15 11 # This row has changed
07_19_2017_17_00_08 15 3
...
01_07_2019_14_06_59 35 3 # and this one too!
我的代码:
df = df.groupby(['Date'], as_index=False).agg({'V1': 'mean', 'V2': 'sum'})
但是,我得到的输出完全出乎意料,而且我找不到合理的解释来解释为什么会发生。似乎熊猫只处理从01_01_2018_00_00_01到12_31_2018_23_58_40的数据,而不是从07_19_2017_17_00_06到01_07_2019_14_06_59的数据。
Date V1 V2
01_01_2018_00_00_01 30 3
01_01_2018_00_00_02 20 4
...
12_31_2018_23_58_35 15 3
12_31_2018_23_58_40 16 11
如果您有任何线索,我将非常感谢您的投入。谢谢!
答案 0 :(得分:0)
我怀疑问题是由于熊猫无法识别我使用的日期格式引起的。事实证明,解决方案非常简单:将所有日期转换为UNIX时间格式,除以60,然后重复groupby过程。