使用Pandas将行数据转换为列

2024-09-30 16:20:07 发布

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

我已经阅读了几个类似的问题及其答案,但仍然无法执行转换。
我的示例数据帧df是这样的:

pd.DataFrame({0: ['Destiantion', 'Switch Location', 'Driver', 'Company'],
1: ['CALGARY', np.nan, 'BALJIT', 'SUPERIOR'],
2: ['CALGARY', np.nan, 'ROBERT', 'APPS'],
3: ['CALGARY', np.nan, 'MARIUS', 'APPS'],
4: ['DELTA', np.nan, np.nan, 'ATC']})

enter image description here

我想重新格式化它,使列0中的值df[0]成为新的列标题,并且新标题列的数据驻留在旧dataframe的同一行中。你知道吗

预期结果:

pd.DataFrame({'Destiantion': ['CALGARY', 'CALGARY', 'CALGARY', 'DELTA'],
              'Switch Location': [np.nan, np.nan, np.nan, np.nan],
              'Driver': ['BALJIT', 'ROBERT', 'MARIUS', np.nan],
              'Company': ['SUPERIOR', 'APPS', 'APPS', 'ATC']})

enter image description here

我研究了.pivot()方法,但是我不能用它来塑造我想要的数据,而且我不确定索引值会是什么。我仍然可以通过将行转换为列表、从列表中提取标题并创建一个新的数据帧来进行转换,但我觉得这不是一个很“pythonic”的方法,我想知道是否有更好的方法可以在现在和将来使用。任何帮助都将不胜感激。谢谢。你知道吗


Tags: apps数据方法标题dataframedfdrivernp