簡體   English   中英

將來自不同文件夾的多個csv文件中的選定列合並到單個csv文件中

[英]Combine selected column from multiple csv files from different folders to a single csv file

這是為了創建最終的數據幀以進行分析,因此我有三種csv文件,我想從文件1和文件2中提取特定的列,然后將其串聯到文件3中以獲得單個csv文件。

我有一個文件夾,其中包含三種類型的文件作為子文件夾->即3個子文件夾。這3個子文件夾包含來自實驗不同部分的數據,並按參與者編號排序。 例如,對於參與者1001,我在每個子文件夾中都有一個文件p1001,對於參與者1002同樣,在每個文件夾中我都有p1002,依此類推。因此,對於每個參與者,我有三個同名但不同文件夾的文件。 如何結合來自三個不同子文件夾的選定列,為每個參與者創建單個csv文件?

import pandas as pd
import os, csv, pdb
import glob

a=[]
base_dir='/Users/...../Desktop/data/'
folders = ('All', 'Choice', 'Choice_S')
pattern = '{}/[{}]/**/filename.csv'.format(base_dir, ''.join(folders))
for filename in glob.glob(pattern):
    filename=pd.DataFrame
    df1=filename[filename['reaction_time']]
    a.append[df1

這就是我嘗試做的

我試圖用一個例子來重提你的案子

我生成了3個隨機文件,每個文件有3列和100行,每個文件都放在一個不同的文件夾中

import numpy as np 
import pandas as pd


a = np.random.rand(100,3) 
b = np.random.rand(100,3) 
c = np.random.rand(100,3) 


dataframe1 = pd.DataFrame(a)
dataframe2 = pd.DataFrame(b)
dataframe3 = pd.DataFrame(c)

dataframe1.columns = dataframe2.columns = dataframe3.columns = {"col1","col2","col3"}

dataframe1.to_csv("./1/a.csv")
dataframe2.to_csv("./2/a.csv")
dataframe3.to_csv("./3/a.csv")

然后我讀回csv文件,然后對每個文件的每一列進行合並,並將結果存儲在dataframe中 ,該數據幀使用pandas.concat和axis = 0包含3個文件的300條合並行,然后使用與軸= 1相同的功能

a1 = pd.read_csv("./1/a.csv")
a2 = pd.read_csv("./2/a.csv")
a3 = pd.read_csv("./3/a.csv")



combined_col1 = pd.concat([a1["col1"],a2["col1"],a3["col1"]],axis=0) 
combined_col2 = pd.concat([a1["col2"],a2["col2"],a3["col2"]],axis=0) 
combined_col3 = pd.concat([a1["col3"],a2["col3"],a3["col3"]],axis=0) 

combine_col1_col2 = pd.concat([combined_col1,combined_col2],axis=1) 


combine_col1_col2.to_csv("result.csv")

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM