添加具有相同列的观测值,并为每个观测值创建一个唯一的行

2024-09-27 19:21:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据集,如下所示:

          batsman                 batting_team  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018
0  A Ashish Reddy              Deccan Chargers     0     0     0     0    35     0     0     0     0     0     0
1  A Ashish Reddy          Sunrisers Hyderabad     0     0     0     0     0   125     0    73    47     0     0
2      A Chandila             Rajasthan Royals     0     0     0     0     0     4     0     0     0     0     0
3        A Chopra        Kolkata Knight Riders    42    11     0     0     0     0     0     0     0     0     0
4     A Choudhary  Royal Challengers Bangalore     0     0     0     0     0     0     0     0     0    25     0

我试着根据他们每年的分数添加同名的列,例如,如果一个Ready出现两次,这意味着

我只是想添加以创建if-else,但没有任何结果

我们从这两个方面创建一个观察结果,如下所示

名字-红色

小组-第二观察小组名称

20082009,…,2018-并从年份列中添加列数据


Tags: 数据小组teamashishroyalsbattingbatsmanhyderabad
1条回答
网友
1楼 · 发布于 2024-09-27 19:21:49

尝试:

df_out = df.groupby('batsman').sum()
#Sums all numeric columns of the dataframe

df_out['batting_team'] = df_out.index.map(df.drop_duplicates(['batsman'], keep='last').set_index('batsman')['batting_team'])
#Use drop duplicates to keep the last team and set_index to use in map 

df_out.reset_index().reindex(df.columns, axis=1)
#Reset index and reorder dataframe columns like input dataframe

输出:

          batsman                 batting_team  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018
0  A Ashish Reddy          Sunrisers Hyderabad     0     0     0     0    35   125     0    73    47     0     0
1      A Chandila             Rajasthan Royals     0     0     0     0     0     4     0     0     0     0     0
2        A Chopra        Kolkata Knight Riders    42    11     0     0     0     0     0     0     0     0     0
3     A Choudhary  Royal Challengers Bangalore     0     0     0     0     0     0     0     0     0    25     0

相关问题 更多 >

    热门问题