【发布时间】:2020-10-12 08:42:58
【问题描述】:
不确定是否有人问过这个问题。但我想通过将数据框中的 NAN 值与另一个合并来替换它。数据框在某些列中包含 NAN 值。我按 id 列中的值对这些列进行了分组。换句话说,就是 col1, col2, col3 中所有值的总和,乘以一个 id 号。
df_group1 = df.groupby('id')[['col1']].sum()
df_group2 = df.groupby('id')[['col2']].sum()
df_group3 = df.groupby('id')[['col3']].sum()
然后我将这三个数据框合并为一个。
df_group = pd.concat([df_group1, df_group2, df_group3], axis = 1)
随后,我将这些值除以包含 id_number 的行的长度
for i in df['id'].unique():
df_group = df_group/len(df[df['id'] == i])
现在我想将此数据帧与df 合并,以便将df 中的NAN 值替换为df_group 中的值,因此如果df_group 中的一行具有ID 号1111 并且相应的col1 值为200 . 我想用 200 替换所有 ID 为 1111 的行的 df 中的所有 NAN 值。最好的方法是什么?
编辑:假设我有这个数据框 df_group(Image1),我想根据 id 和列名将 df(Image2) 中的所有 NAN 替换为 df_group 中的值
【问题讨论】:
-
所以,我假设您有一个带有 Id 的 df 和几个带有 NaN 值的列。另一个带有 Id 的 df 和一个带有非 NaN 值的列。您想要合并这 2 个数据框,并将第一个 df 中的 NaN 替换为第二个 df 中的值。如果您可以发布示例数据集和预期结果会更好。否则我们只是猜测。
-
@davidbilla 我已经用示例数据帧的图像编辑了问题
-
@VadimKatsemba 请不要使用图片...看看stackoverflow.com/questions/20109391/…,了解如何让人们更轻松地为您提供帮助。
-
@JonClements 我的错,我不确定如何正确显示数据框,所以我使用了截屏