python - 如何在熊猫中垂直组合两个数据集?
问题描述
我有一个循环,它生成数据帧,每个数据帧有 2 列。现在,当我尝试垂直附加数据帧(垂直堆叠)时,当我在循环中使用 pd.concat 时,代码会水平添加新的数据帧。但是,结果不会合并列(正确地具有相同的长度)。相反,它为每个循环迭代添加了 2 个新列,在 Nans 上创建了一堆。怎么解决?
df_master=pd.DataFrame()
columns=list(df_master)
data=[]
for i in range(1,3):
--do something and return a df2 with 2 columns
data.append(df2)
df_master = pd.concat(data, axis=1)
df_master.head()
如何为一个数据帧中的每次迭代压缩新的 2 列?
解决方案
如果您不需要保留原始数据框的列标签,您可以尝试在 concat 之前将每个数据框的列标签重命名为相同(例如0
和1
),例如:
df_master = pd.concat([dfi.rename({old: new for new, old in enumerate(dfi.columns)}, axis=1) for dfi in data], ignore_index=True)
演示
df1
57 59
0 1 2
1 3 4
df2
138 140
0 11 12
1 13 14
data = [df1, df2]
df_master = pd.concat([dfi.rename({old: new for new, old in enumerate(dfi.columns)}, axis=1) for dfi in data], ignore_index=True)
df_master
0 1
0 1 2
1 3 4
2 11 12
3 13 14
推荐阅读
- syncfusion - Sfgrid 列标题不与列对齐
- php - 10.4.11-MariaDB (MySql) 和 PHP 7.2.29 UTF-8 编码的问题
- mysql - 替代使用在 mysql 中
- elasticsearch - 带有必须(和)应该(或)不产生预期结果的 Elasticsearch 查询
- tensorflow - 如何冻结一个模型的子模型,而不影响其他模型?
- javascript - 每次特定用户在现有网站上发送消息时播放声音/通知
- python - 元组上的哈希输出不一致
- pandas - pandas to_csv 为字符串“test123”hello world 创建问题
- mysql - mysql docker无法从外部容器连接
- json - 使用 XML 对象读取 XML 文件会导致缺少条目