我知道 - 令人困惑的头衔。但是听我说。
如果我有这样的熊猫DF:
date team opponent
0 20141028 magic hornets
1 20141028 mavericks spurs
2 20141029 76ers pacers
我想在其中创建一个DF,其中行是重复的,但是' team'和对手'价值是翻转的,我怎么能在熊猫中做到最好?
所以我想要这个:
date team opponent
0 20141028 magic hornets
1 20141028 hornets magic
2 20141028 mavericks spurs
3 20141028 spurs mavericks
4 20141029 76ers pacers
5 20141029 pacers 76ers
谢谢!
答案 0 :(得分:4)
您可以使用翻转的列创建另一个名为df
的数据框,然后将其附加到df1 = df.copy()
df1.columns = ['date', 'opponent', 'team']
df.append(df1).sort_index().reset_index(drop=True)
date opponent team
0 20141028 hornets magic
1 20141028 magic hornets
2 20141028 spurs mavericks
3 20141028 mavericks spurs
4 20141029 pacers 76ers
5 20141029 76ers pacers
。
{{1}}
答案 1 :(得分:1)
您可以重新排列列,然后连接。
df_new = pd.concat([df, pd.DataFrame(df[['date', 'opponent', 'team']].values,
columns=['date', 'team', 'opponent'])])
>>> df_new
date team opponent
0 20141028 magic hornets
1 20141028 mavericks spurs
2 20141029 76ers pacers
0 20141028 hornets magic
1 20141028 spurs mavericks
2 20141029 pacers 76ers
如果你真的需要你指定的顺序(原始对后跟反向对),你可以按@ Jianxun Li的建议对其进行排序:
df_new.sort_index().reset_index(drop=True)