You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中合并单列Pandas DataFrame为多列数据表?

问题

我希望将数据集合并为一个1432行×4列的DataFrame。使用for循环对所有数据进行savgol_filter过滤后,得到了4个各为1432行×1列的输出,想将它们合并为一个数据表,请问该如何操作?

我的代码及输出

代码

for ind,row in gf.iterrows():
    filter2 = savgol_filter(row, 31,3)
    hf = pd.DataFrame(filter2)
    hf.to_numpy()
  
    print(hf)

输出

0
0     0.901141
1     0.915138
2     0.928173
3     0.940281
4     0.951494
...        ...
1427  0.108484
1428  0.111043
1429  0.113958
1430  0.117230
1431  0.120859

[1432 rows x 1 columns]
             0
0     0.926357
1     0.940313
2     0.953292
3     0.965326
4     0.976451
...        ...
1427  0.108484
1428  0.111043
1429  0.113958
1430  0.117230
1431  0.120859

[1432 rows x 1 columns]
             0
0     0.926577
1     0.941009
2     0.954399
3     0.966784
4     0.978202
...        ...
1427  0.108484
1428  0.111043
1429  0.113958
1430  0.117230
1431  0.120859

[1432 rows x 1 columns]
             0
0     0.928050
1     0.942212
2     0.955387
3     0.967608
4     0.978907
...        ...
1427  0.108484
1428  0.111043
1429  0.113958
1430  0.117230
1431  0.120859
解决方案

你可以先初始化一个空列表,每次循环把过滤后的结果添加到列表里,最后用pd.concat把列表里的所有DataFrame按列合并,就能得到1432行×4列的DataFrame了。

修改后的代码如下:

# 初始化空列表存储每个过滤后的结果
filtered_dfs = []

for ind, row in gf.iterrows():
    filter2 = savgol_filter(row, 31, 3)
    hf = pd.DataFrame(filter2, columns=[f'col_{ind}'])  # 给每列命名,方便区分
    filtered_dfs.append(hf)

# 按列合并所有DataFrame
final_df = pd.concat(filtered_dfs, axis=1)

# 查看结果
print(final_df.shape)  # 输出应该是 (1432, 4)
print(final_df)

关键说明

  • 用列表filtered_dfs收集每次循环生成的1列DataFrame,避免每次循环覆盖之前的结果
  • pd.concat的axis=1参数指定按列合并,默认是按行合并(axis=0)
  • 给每个子DataFrame指定列名(比如col_0、col_1),合并后列名清晰,也可以换成你需要的自定义名称

如果不需要自定义列名,也可以直接用默认列名,合并后会自动调整:

filtered_dfs = []

for ind, row in gf.iterrows():
    filter2 = savgol_filter(row, 31, 3)
    filtered_dfs.append(pd.DataFrame(filter2))

final_df = pd.concat(filtered_dfs, axis=1)

内容的提问来源于stack exchange,提问作者TCC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 06:53:19