这是为了创建最终的数据帧以进行分析,因此我有三种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
这就是我尝试做的
答案 0 :(得分:0)
我试图举一个例子来重提您的案子
我生成了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 和axis = 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")
希望有帮助