Pandas/Python,从多个csv中读取一行,合并成1个csv

Pandas/Python, Reading one row from multiple csv, and combining into 1 csv

我对 Python 和 Pandas 等(放轻松)还很陌生,到目前为止已经花了整整几天时间研究如何做到这一点,但没有成功。这是项目。

为 2 个不同的数据点创建了两个不同的 .CSV,每个数据点的当天总计 运行(以最后一行中该特定数据的当天总计结束)。例如,在 4_23_2022_Data1.csv 中,有列 DateData1,在 4_23_2022_Data2.csv 中,有列 DateData2,以及每个 .csv 中的最后一行包含当天的日期(显然)和该数据的总计(Data1 或 Data2 列)。

我想要完成的是:读取包含 2 组数据 .csv 的目录(多天),并创建一个包含 'Date'、[=29= 的组合 .CSV ], Data2' 列,Data1 和 Data2 的集合显示在该特定日期的相应行中。 [创建这些 .csv 的主系统最初无法将 Data1 和 Data2 合并到 1 个 .csv 中,因此我正在尝试创建一个可以快速扫描并执行此操作的程序。]

我最初的编码尝试只是浅尝辄止(不考虑任何循环):

df_1 = pd.read_csv('04_23_2022_Data1.csv', usecols = ['Date','Data1'])

df_2 = pd.read_csv('04_23_2022_Data2.csv', usecols = ['Date','Data2'])

##the last line of the day is 538

Data1_date = df1_read.iloc[538]['Date']     

Data1_value = df1_read.iloc[538]['Data1']

Data2_date = df2_read.iloc[538]['Date'] 

Data2_value = df2_read.iloc[538]['Data2']

df_export = pd.DataFrame(columns = ['Date','Data1','Data2'])

df_export.at[1, 'Date'] = Data1_date

df_export.at[1, 'Data1'] = Data1_value

df_export.at[1, 'Data2'] = Data2_value

df_export.to_csv('Combo_of_Data1_and_Data2_per_Date.csv')

如有任何帮助或进一步指导,我们将不胜感激。再次,对于这个问题的完全新手攻击感到抱歉,但我正在尝试。 :)

您可以使用 glob.glob(). And use Python built-in functions iter() and zip() 循环访问文件夹中的文件,以成对循环访问文件。

# import
import glob

# define folder path
# look for files ending in '.csv' only
path = r'\data_folder\*.csv'

# loop through folder and store all relevant files as a list
file_paths = glob.glob(path)
# iterate through list to get elements in pairs
iterable_list = iter(file_paths)
# zip pairs of elements
iterable_list = zip(iterable_list, iterable_list)

# loop through list of files in pairs and do stuff...
for file_one, file_two in pair_elements(file_paths):
    df_1 = pd.read_csv(file_one)
    df_2 = pd.read_csv(file_two)
    # do stuff