大 pandas 将数据从一个df带到另一个问题 [英] pandas bring data from one df to another issue
本文介绍了大 pandas 将数据从一个df带到另一个问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含重复项的数据集:
I have a data set that has a count of duplicates:
#Count number of injuries by levels for each players
levelcount = df.groupby(['Relinquished','Severity']).size().reset_index(name='count')
levelcount['DTD'] = ''
levelcount['DNP'] = ''
levelcount['out indefinitely'] = ''
levelcount['ou t for season'] = ''
levelcount.head(4)
Relinquished Severity Count DTD DNP outindefinitely outforseason
0 player1 1 1
1 player1 3 1
2 player2 3 1
3 player3 1 3
我想以适当的顺序将计数值添加到其他数据框中:
1:DTD,
2:DNP,
3:无限期出局,
4:参加本赛季
I want to add the count values to a different dataframe with an appropriate order:
1:DTD,
2:DNP,
3:out for indefinitely,
4: out for the season.
我尝试使用if语句,但似乎无法取得突破.预先谢谢你!
I tried using if statements but I can't seem the make a breakthrough. Thank you in advance!
if levelcount['Severity'] == 1:
df_extension['DTD'] = levelcount['']
if levelcount['Severity'] == 2:
df_extension['DNP'] = levelcount['']
if levelcount['Severity'] == 3:
df_extension['out indefinitely'] = levelcount['']
if levelcount['Severity'] == 4:
df_extension['out for season'] = levelcount['']
推荐答案
使用 DataFrame.set_index
并通过您的解决方案可以按字典循环并设置新列:
Your solution is possible by loop by dictionary and set new columns:
levelcount = df.groupby(['Relinquished','Severity']).size().reset_index(name='count')
d = {1:'DTD',2:'DNP',3:'outindefinitely',4:'outforseason'}
for k, v in d.items():
levecount = levelcount.loc[levelcount['Severity'] == k, v] = levelcount['count']
这篇关于大 pandas 将数据从一个df带到另一个问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文