【发布时间】:2017-01-03 08:05:30
【问题描述】:
我需要获取一个 CSV 文件并拆分行并将它们级联。输入 CSV 可以有不同数量的列(总是偶数),但总是以相同的方式拆分。我决定使用 Pandas,因为对于某些文件,输出将是 500,000 行,我认为它会加快速度。
输入:
h1 h2 h3 h4 h5 h6
A1 A2 A3 A4 A5 A6
B1 B2 B3 B4 B5 B6
预期输出
h1 h2 h3 h4 h5 h6
A1 A2
A1 A2 A3 A4
A1 A2 A3 A4 A5 A6
B1 B2
B1 B2 B3 B4
B1 B2 B3 B4 B5 B6
我尝试使用下面的代码(通过一些搜索和我自己的编辑拼凑在一起),你可以看到它很接近,但不是我需要的。
importFile = pd.read_csv('file.csv')
df = df_importFile = pd.DataFrame(importFile)
index_cols = ['h1']
cols = [c for c in df if c not in index_cols]
df2 = df.set_index(index_cols).stack().reset_index(level=1, drop=True).to_frame('Value')
df2 = pd.concat([pd.Series([v if i % len(cols) == n else ''
for i, v in enumerate(df2.Value)], name=col)
for n, col in enumerate(cols)], axis=1).set_index(df2.index)
df2.to_csv('output.csv')
这给出了以下内容
h1 h2 h3 h4 h5 h6
A1 A2
A1 A3
A1 A4
A1 A5
A1 A6
【问题讨论】:
标签: python csv pandas dataframe