预期结果如下:
id name
1 A
2 B
3 C
4 D
5 E
6 F
7 G
8 H
目前我是这样做的:
import pandas as pd
df = pd.DataFrame({'home_id': ['1', '3', '5', '7'],
'home_name': ['A', 'C', 'E', 'G'],
'away_id': ['2', '4', '6', '8'],
'away_name': ['B', 'D', 'F', 'H']})
id_col = pd.concat([df['home_id'], df['away_id']])
name_col = pd.concat([df['home_name'], df['away_name']])
result = pd.DataFrame({'id': id_col, 'name': name_col})
result = result.sort_index().reset_index(drop=True)
print(result)
但是这种形式使用索引对列进行重新分类,在索引相等的情况下可能会产生错误。
如何插入列值始终为:
先用一线的主场,再用一线的客场,再用二线的主场,再用二线的客场等等......
3条答案
按热度按时间3duebb1j1#
试试这个:
92dk7w1h2#
与python zip类似,您可以遍历两个 Dataframe :
kb5ga3dv3#
您可以使用
pd.wide_to_long
并对列标题进行少量重命名来完成此操作:输出: