python - 为什么在附加 Pandas 数据框时列顺序会发生变化?

标签 python csv pandas

我想使用 Python pandas 附加(合并)文件夹中的所有 csv 文件。

例如:说文件夹有两个csv文件test1.csvtest2.csv如下:

A_Id    P_Id    CN1         CN2         CN3
AAA     111     702         709         740
BBB     222     1727        1734        1778

A_Id    P_Id    CN1         CN2         CN3
CCC     333     710        750          750
DDD     444     180        734          778

所以我写的python脚本如下:

#!/usr/bin/python
import pandas as pd
import glob

all_data = pd.DataFrame()
for f in glob.glob("testfolder/*.csv"):
    df = pd.read_csv(f)
    all_data = all_data.append(df)

all_data.to_csv('testfolder/combined.csv')

虽然 combined.csv 似乎有所有附加的行,但它看起来如下:

      CN1       CN2         CN3    A_Id    P_Id
  0   710      750         750     CCC     333
  1   180       734         778     DDD     444     
  0   702       709         740     AAA     111
  1  1727       1734        1778    BBB     222

它应该看起来像这样:

A_ID   P_Id   CN1    CN2    CN2
AAA    111    702    709    740
BBB    222    1727   1734   1778
CCC    333    110    356    123
DDD    444    220    256    223
  • 为什么前两列移到最后?
  • 为什么附加在第一行而不是最后一行?

我错过了什么?以及如何在第一列中获取 0 和 1?

P.S:由于这些是大型 csv 文件,我想到了使用 pandas。

最佳答案

试试这个.....

all_data = all_data.append(df)[df.columns.tolist()]

关于python - 为什么在附加 Pandas 数据框时列顺序会发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33797454/

相关文章:

python - 如何从API检索WAV文件?

node.js - 在 Node/Express 中,如何使用 csv-to-array 来匹配或比较嵌套 Promise 中的值

python - pandas - 获取未排序的分层列

python - 从 pandas 表中选取/过滤元素,其中数据位于列标题值之间

python - django-social-auth 使用 Google OpenID 给出 502 错误,但只有少数用户

python - 透视单应性问题

php - 从 CSV 执行大型 MySQL 插入时出现错误 500 或内容编码错误

python - 调用重采样后如何用值 0 填充 na()?

python - 使用Python的ast从类中获取属性

php - 如何保存 CSV 而不下载