这是我的示例数据帧行:
A B C D E
我有一个字典格式如下:
{'foo': ['A', 'B', 'C'], 'bar': ['D', 'E']}
我想在原始数据框上方添加一行,以便我的新数据框是:
foo foo foo bar bar
A B C D E
我想也许df.map函数应该能够做到,但我已经尝试过了,似乎无法使语法正确。
我相信你想要用DataFrame
和dict
的map
行设置列名:
d = {'foo': ['A', 'B', 'C'], 'bar': ['D', 'E']}
#swap keys with values
d1 = {k: oldk for oldk, oldv in d.items() for k in oldv}
print (d1)
{'E': 'bar', 'A': 'foo', 'D': 'bar', 'B': 'foo', 'C': 'foo'}
df = pd.DataFrame([list('ABCDE')])
df.columns = df.iloc[0].map(d1).values
print (df)
foo foo foo bar bar
0 A B C D E
如果需要在一行中设置第一行DataFrame
:
df = pd.DataFrame([list('ABCDE')])
df.loc[-1] = df.iloc[0].map(d1)
df = df.sort_index().reset_index(drop=True)
print (df)
0 1 2 3 4
0 foo foo foo bar bar
1 A B C D E