根据字典向pandas数据帧添加一行

问题描述 投票:0回答:1

这是我的示例数据帧行:

A  B  C  D  E

我有一个字典格式如下:

{'foo': ['A', 'B', 'C'], 'bar': ['D', 'E']}

我想在原始数据框上方添加一行,以便我的新数据框是:

foo foo foo bar bar
 A   B   C   D   E

我想也许df.map函数应该能够做到,但我已经尝试过了,似乎无法使语法正确。

python-3.x pandas dataframe
1个回答
0
投票

我相信你想要用DataFramedictmap行设置列名:

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
© www.soinside.com 2019 - 2024. All rights reserved.