将来自不同文件夹的多个 csv 文件中的选定列合并为单个 csv 文件



这是为了为我的分析创建最终数据帧。所以我有三种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文件,然后对于每个文件的每一列,我合并了行并将结果存储在包含3个文件的300行组合行的数据帧中使用 pandas.concat 轴 = 0 ,然后我使用相同的函数将列与轴 = 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")

希望对您有所帮助。

相关内容

  • 没有找到相关文章

最新更新