首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用python熊猫将csv文件中的多行合并为一行

使用python熊猫将csv文件中的多行合并为一行
EN

Stack Overflow用户
提问于 2020-01-15 07:52:42
回答 2查看 790关注 0票数 2

我有一个包含多行的csv文件,如下所述

代码语言:javascript
运行
复制
Id  Name  Marks1 Marks2 Marks3 Marks4 Marks5
1   ABC   10     NAN    NAN    NAN    NAN
2   BCD   15     NAN    NAN    NAN    NAN
3   CDE   17     NAN    NAN    NAN    NAN
1   ABC   NAN    18     NAN    17     NAN
2   BCD   NAN    10     NAN    15     NAN
1   ABC   NAN    NAN    16     NAN    NAN
3   CDE   NAN    NAN    19     NAN    NAN

我想使用python中的熊猫将具有相同id和名称的行合并为一行。产出应是:

代码语言:javascript
运行
复制
Id  Name  Marks1 Marks2 Marks3 Marks4 Marks5
1   ABC   10     18     16     17     NAN
2   BCD   15     10     NAN    15     NAN
3   CDE   17     NAN    19     NAN    NAN
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-15 08:00:36

DataFrame.groupby + as_index=False + GroupBy.first消除NaN

代码语言:javascript
运行
复制
#df = df.replace('NAN',np.nan) #If necessary
df.groupby(['Id','Name'],as_index=False).first()

如果您认为它可以在某个列中有一个带有非空值的对Id名,则可以使用GroupBy.applySeries.ffillSeries.bfill + DataFrame.drop_duplicates来保存所有信息。

代码语言:javascript
运行
复制
df.groupby(['Id','Name']).apply(lambda x: x.ffill().bfill()).drop_duplicates()

输出

代码语言:javascript
运行
复制
   Id Name Marks1 Marks2 Marks3 Marks4  Marks5
0   1  ABC     10     18     16     17     NaN
1   2  BCD     15     10    NaN     15     NaN
2   3  CDE     17    NaN     19    NaN     NaN
票数 3
EN

Stack Overflow用户

发布于 2020-01-15 07:58:15

无趣的回答:

代码语言:javascript
运行
复制
pd.groupby(“Name”).mean().reset_index()

只有当每个列的每个名称只有一个有效值时,这才能工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59747062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档