将 pandas 列变成另一行记录
Turn pandas column into another row record
我现在的pandasdf的简化形式如下:
Team1
Team1_Rank
Team2
Team2_Rank
Final_Score
abc
1234
def
9876
13 - 32
创建以下形式的新 df 的有效方法是什么?
Team
Team1_Rank
Opp
Opp_Rank
Final_Score
abc
1234
def
9876
13 - 32
def
9876
abc
1234
32 - 13
创建两个 DataFrame 副本,以不同方式重命名列。在第二个中,也翻转 'Final Score' 围绕 '-' 的顺序,然后加入结果。这也为每一行保留了原始索引,这样您就可以看到分组的内容。
df1 = df.rename(columns={'Team1': 'Team', 'Team1_Rank': 'Team_Rank',
'Team2': 'Opp', 'Team2_Rank': 'Opp_Rank'})
df2 = df.rename(columns={'Team1': 'Opp', 'Team1_Rank': 'Opp_Rank',
'Team2': 'Team', 'Team2_Rank': 'Team_Rank'})
df2['Final_Score'] = df2['Final_Score'].str.split(' - ').str[::-1].str.join(' - ')
df = pd.concat([df1, df2])
Team Team_Rank Opp Opp_Rank Final_Score
0 abc 1234 def 9876 13 - 32
0 def 9876 abc 1234 32 - 13
我现在的pandasdf的简化形式如下:
Team1 | Team1_Rank | Team2 | Team2_Rank | Final_Score |
---|---|---|---|---|
abc | 1234 | def | 9876 | 13 - 32 |
创建以下形式的新 df 的有效方法是什么?
Team | Team1_Rank | Opp | Opp_Rank | Final_Score |
---|---|---|---|---|
abc | 1234 | def | 9876 | 13 - 32 |
def | 9876 | abc | 1234 | 32 - 13 |
创建两个 DataFrame 副本,以不同方式重命名列。在第二个中,也翻转 'Final Score' 围绕 '-' 的顺序,然后加入结果。这也为每一行保留了原始索引,这样您就可以看到分组的内容。
df1 = df.rename(columns={'Team1': 'Team', 'Team1_Rank': 'Team_Rank',
'Team2': 'Opp', 'Team2_Rank': 'Opp_Rank'})
df2 = df.rename(columns={'Team1': 'Opp', 'Team1_Rank': 'Opp_Rank',
'Team2': 'Team', 'Team2_Rank': 'Team_Rank'})
df2['Final_Score'] = df2['Final_Score'].str.split(' - ').str[::-1].str.join(' - ')
df = pd.concat([df1, df2])
Team Team_Rank Opp Opp_Rank Final_Score
0 abc 1234 def 9876 13 - 32
0 def 9876 abc 1234 32 - 13