熊猫用不同的列python连接数据框列表

Posted

技术标签:

【中文标题】熊猫用不同的列python连接数据框列表【英文标题】:pandas concatenate list of data frames with different columns python 【发布时间】:2019-02-15 20:35:45 【问题描述】:
data=pd.concat(a,ignore_index=True,axis=0)

a 是具有不同形状和列的数据帧列表,但大多数是相同的,我想将其连接成一个数据帧但收到错误。

“NoneType”对象没有属性“is_extension”

【问题讨论】:

请提供minimal,complete and verifiable 示例 df = pd.DataFrame.from_dict(map(dict,a)) @Vazgen 我尝试了您的代码并收到错误“数据参数不能是迭代器” 您能添加一个数据示例吗?我尝试使用具有不同形状和列的数据框列表运行 pd.concat。它有效。 【参考方案1】:

我假设您可以在非共享列中使用 None。像这样的东西会起作用。它使用append 在相应的DataFrames 中创建一个空列:

# generate a sample scenario
df1 = pd.DataFrame(
    'shared1': range(7),
    'col1': range(7)
)
df2 = pd.DataFrame(
    'shared1': range(7),
    'col2': range(7)
)

# make columns the same by adding empty columns
for c in df2.columns:
    if c not in df1.columns:
        df1[c] = None
for c in df1.columns:
    if c not in df2.columns:
        df2[c] = None
df1.append(df2)

【讨论】:

以上是关于熊猫用不同的列python连接数据框列表的主要内容,如果未能解决你的问题,请参考以下文章

连接两个熊猫数据框并重新排序列

熊猫中的列连接

Python Pandas - 连接两个具有不同行数和列数的数据框

我想将国家/地区列表与作为熊猫数据框 Python 中字典对象类型的列数据进行比较

熊猫:连接数据框时如何聚合两个列表列

python用额外的列连接替换数据框列值