如何在pandas datafram中合并两行来创建列

2024-09-30 16:30:38 发布

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

嗨,我有一个像这样的测向仪

    0     1    2       3
0   A     B    NaN     C
1   D     NaN  E       F
2   one   two  three   four
3   five  six  sev     egght

我试图通过合并row1和row2为df创建一个新列,我可以通过添加行并将其替换到列中并删除重复的行来完成此操作。但我在寻找一种可以迎合的方式。在

我的预期产出是

^{pr2}$

替换NaN with ''


Tags: dfwith方式nanonethreefourrow1
2条回答

您可以使用str.catiloc切片和rename

In [1008]: df.iloc[2:].rename(columns=df.iloc[:2].apply(lambda x: x.str.cat(sep=' ')))
Out[1008]:
    A D    B      E    C F
2   one  two  three   four
3  five  six    sev  egght

细节

^{pr2}$

您可以按^{}选择前2行,并用^{}替换{}s。在

然后按空格连接,但需要按^{}删除尾随空格:

cols = df.iloc[:2].fillna('')
df.columns = (cols.iloc[0] + ' ' + cols.iloc[1]).str.strip()

df = df.iloc[2:]
print (df)
    A D    B      E    C F
2   one  two  three   four
3  five  six    sev  egght

或者最好将所有非NaN的值与^{}和{a5}连接起来:

^{pr2}$

相关问题 更多 >