3 回答
TA贡献1789条经验 获得超8个赞
import pandas as pd
df = pd.DataFrame(columns=['Jeep', 'Volvo', 'Honda'])
s = pd.Series({"Honda": 5, "Nissan": 3, "Jeep": 7, "Toyota": 2})
df.append(s[df.columns], ignore_index=True).fillna(0)
TA贡献1860条经验 获得超9个赞
您可以使用append比获取特定列:
>>> import pandas as pd
>>> df = pd.DataFrame(columns=['Jeep', 'Volvo', 'Honda'])
>>> s = pd.Series([5, 3, 7, 2],index=['Honda', 'Nissan', 'Jeep', 'Toyota'])
>>> df1 = df.append(s, ignore_index=True)
>>> df1[df.columns].fillna(0)
Jeep Volvo Honda
0 7.0 0.0 5.0
>>>
这段代码实际上是:
>>> df1 = df.append(s, ignore_index=True)
>>> df1[df.columns].fillna(0)
Jeep Volvo Honda
0 7.0 0.0 5.0
>>>
TA贡献1842条经验 获得超12个赞
您可以通过reindex下面列出的几种不同方式使用。
series.to_frame().T.reindex(df.columns, axis=1, fill_value=0)
Jeep Volvo Honda
0 7 0 5
series.reindex(df.columns, fill_value=0).to_frame().T
Jeep Volvo Honda
0 7 0 5
df.append(series.reindex(df.columns, fill_value=0).rename(len(df)))
Jeep Volvo Honda
0 7 0 5
添加回答
举报