将 Pandas 系列作为 DataFrame 中的一行附加,忽略不匹配的列

假设我有以下 Pandas 数据框,但还没有行:


'Jeep' | 'Volvo' | 'Honda'

--------------------------

我有以下熊猫系列:


Honda    5

Nissan   3

Jeep     7

Toyota   2

我想将此系列添加为一行(不包括与列名不匹配的元素)


结果:


'Jeep' | 'Volvo' | 'Honda'

----------------------------

   7   |    0    |    5

是否有可能做到这一点?


幕布斯7119047
浏览 245回答 3
3回答

拉丁的传说

import pandas as pddf = 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)

慕码人2483693

您可以使用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  Honda0   7.0    0.0    5.0>>> 这段代码实际上是:>>> df1 = df.append(s, ignore_index=True)>>> df1[df.columns].fillna(0)   Jeep  Volvo  Honda0   7.0    0.0    5.0>>> 

红颜莎娜

您可以通过reindex下面列出的几种不同方式使用。series.to_frame().T.reindex(df.columns, axis=1, fill_value=0)   Jeep  Volvo  Honda0     7      0      5series.reindex(df.columns, fill_value=0).to_frame().T   Jeep  Volvo  Honda0     7      0      5df.append(series.reindex(df.columns, fill_value=0).rename(len(df)))  Jeep Volvo Honda0    7     0     5
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python