将带有分组数据的 CSV 导入 Pandas 数据框 [重复]
Posted
技术标签:
【中文标题】将带有分组数据的 CSV 导入 Pandas 数据框 [重复]【英文标题】:Importing a CSV with grouped data into a Pandas data frame [duplicate] 【发布时间】:2019-01-16 17:41:47 【问题描述】:当我使用 Pandas 导入数据文件时,我得到以下数据框:
product feature_1 feature_2
0 a 11 12
1 NaN 13 14
2 NaN 15 16
3 NaN 17 18
4 NaN 19 20
5 b 21 22
6 NaN 23 24
7 NaN 25 26
8 c 27 28
9 NaN 29 30
10 NaN 31 32
我需要做的是将 NaN 替换为它们上方的下一个非 NaN 元素,以便我得到以下数据框:
product feature_1 feature_2
0 a 11 12
1 a 13 14
2 a 15 16
3 a 17 18
4 a 19 20
5 b 21 22
6 b 23 24
7 b 25 26
8 c 27 28
9 c 29 30
10 c 31 32
我做了什么(代码和数据文件见gist):
将我的数据导入字典列表 遍历列表并进行修改 将列表导入数据框如何在不事先进行列表预处理的情况下直接在 Pandas 中实现这一点?
【问题讨论】:
你可以只做df['product'] = df['product'].ffill()
,但是,如果你想回到分组的df,你可以传递多索引的序数位置:pd.read_csv(your_file_path, index_col=[0,1])
。那么你想取回多索引df吗?
不是真的,我接受了答案-谢谢
【参考方案1】:
您可以使用pd.Series.ffill
来避免字典转换和手动迭代:
df['product'].ffill(inplace=True)
print(df)
product feature_1 feature_2
0 a 11 12
1 a 13 14
2 a 15 16
3 a 17 18
4 a 19 20
5 b 21 22
6 b 23 24
7 b 25 26
8 c 27 28
9 c 29 30
10 c 31 32
【讨论】:
OP 实际上可能想要回到多索引 df,我对此发表了评论,因此我们将看看是否是这种情况。如果是这样,我们应该找到不同的欺骗 @EdChum,知道了,如果是这种情况,请随时重新打开 :)以上是关于将带有分组数据的 CSV 导入 Pandas 数据框 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Pandas:使用循环和分层索引将多个 csv 文件导入数据帧