【问题标题】:How to avoid Pandas groupby caused data lost如何避免 Pandas groupby 导致数据丢失
【发布时间】:2020-09-24 16:27:34
【问题描述】:

我有一个数据框类型的数据,大小为 7689 行 × 114 列。其中包含日期时间、浮点型数据等。我尝试使用'groupby'方法将原始数据分成4部分,分别处理一些基本的减法运算(不改变数据结构)并将4部分组合回来使用 'pd.concat' 方法合二为一。

但是在我将它们连接成一个之后,大小变成了 7685 行 × 114 列。最重要的是,当我将 DateTime 可视化为时间线时,它显示数据丢失,最初是半年一致的数据,但现在丢失了近一个月(但同时数据量增加了)。 代码如下:

#Divide into 4 parts according to column 1 and column 2
grouped = overlay_syco.groupby(['column 1','column 2'])
print(grouped.describe())

#print(grouped.describe())
l_grouped = list(grouped)

df1 = l_grouped[0][1]
df2 = l_grouped[1][1]
df3 = l_grouped[2][1]
df4 = l_grouped[3][1]

df_con0 = pd.concat([df1, df2, df3, df4], axis=0)

这是分组结果:

count   
column 1                                                      column 2          
row1 1.0                                                 1936.0   
           2.0                                                 1911.0   
row2 1.0                                                 1925.0   
           2.0                                                 1913.0   

如有任何帮助解决此问题,我将不胜感激。

【问题讨论】:

    标签: python pandas datetime timeline


    【解决方案1】:

    我怀疑如果您尝试提取 l_grouped 变量的长度:

    len(l_grouped)

    您会发现它返回的值大于 4。换句话说,您将数据分成超过 4 个部分,但只是将 4 个部分重新组合在一起。

    【讨论】:

    • 我刚试了一下,返回值为4,所以我认为不是这个问题。@mullinscr
    • 你能给你的“基本减法运算”一些细节和数据吗?
    猜你喜欢
    • 2020-09-23
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 2022-06-13
    • 2021-01-28
    • 1970-01-01
    相关资源
    最近更新 更多