如何通过合并熊猫数据框中的两行来创建列

时间:2018-08-24 06:42:39

标签: python pandas dataframe data-analysis

嗨,我有这样的df,

    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创建一个新列,我可以通过添加行并将其替换为列并删除重复的行来做到这一点。但我正在寻找一种可恶的方法。

我的预期输出是

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

替换NaN with ''

2 个答案:

答案 0 :(得分:3)

您可以通过iloc选择前两行,并用fillna替换<style name="StyledTilEditTextTheme"> <item name="colorControlNormal">@color/greyLight</item> <item name="colorControlActivated">@color/gray_ccc</item> </style>

然后按空格连接,但需要通过strip删除尾随空格:

NaN

或者更好地将所有非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 的值与applydropna连接起来:

NaN

答案 1 :(得分:1)

您可以使用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

详细信息

In [1012]: df.iloc[:2].apply(lambda x: x.str.cat(sep=' '))
Out[1012]:
0    A D
1      B
2      E
3    C F
dtype: object