嗨,我有这样的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 ''
答案 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
的值与apply
和dropna
连接起来:
NaN
答案 1 :(得分:1)
您可以使用str.cat
,iloc
切片和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