我有一些csv文件,假设现在我在一个文件夹中有3个文件,每个文件有三列
1.csv 2.csv 3.csv
A B C A B C A B C
5 23 56 5 43 23 5 65 08
10 31 77 10 76 66 10 34 72
20 33 98 20 39 28 20 23 64
30 18 26 30 27 39 30 73 92
我想创建一个带有A
列的新csv文件,并通过循环从另一个csv文件中仅添加B
列,如下所示:
预期结果:
new.csv
A B B B
5 23 43 65
10 31 76 34
20 33 39 23
30 18 27 73
但我失败了
这是我当前的代码:
import pandas as pd
import numpy as np
import csv
import glob
import os
path = "C:/Users/SYIFAAZRA/Documents/belajar_wradlib/learning/"
os.chdir(path)
file = glob.glob("*.csv")
one = { 'A' : ['5','10','20','30'] }
i = 1
for f in file:
i = i+1
col_names = ['B', 'C']
df = pd.read_csv(f, delimiter=',',usecols=[1, 2], names=col_names)
df = pd.DataFrame(one)
df['B'] = pd.Series(df)
print(df)
您将要合并键“A”上的数据帧,因为它存在于所有文件中。 我建议在循环之前创建df
请注意,您可能需要清理列的名称,这取决于您最终打算做什么
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html#pandas.DataFrame.merge
省略csv文件的读取,因为它与问题无关,并且更容易获得完整的最小示例:
下面的第二个问题是关于许多文件的。如果文件的数量不是很大,我会将操作分成两个循环。 一个是将文件读入数据帧列表,另一个是将它们聚合到一个数据帧中
所有这些都不是很优雅,但我很难记住
pandas
中优雅的解决方案。我喜欢简单易懂的阅读相关问题 更多 >
编程相关推荐