Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何应用pandas.Series代码比较文件夹中的多个文件_Python 3.x_Pandas_Csv_For Loop_Dataframe - Fatal编程技术网

Python 3.x 如何应用pandas.Series代码比较文件夹中的多个文件

Python 3.x 如何应用pandas.Series代码比较文件夹中的多个文件,python-3.x,pandas,csv,for-loop,dataframe,Python 3.x,Pandas,Csv,For Loop,Dataframe,我已经有了以下代码,可以在文件夹中查找所有csv文件并将其读入: directory = os.fsencode(folderpath) os.chdir(directory) for file in os.listdir(directory): filename = os.fsdecode(file) if filename.endswith(".csv"): df1 = pd.read_csv(filename)[columnName] 现在,我有了可以在我

我已经有了以下代码,可以在文件夹中查找所有csv文件并将其读入:

directory = os.fsencode(folderpath)
os.chdir(directory)
for file in os.listdir(directory):
    filename = os.fsdecode(file)
    if filename.endswith(".csv"):
        df1 = pd.read_csv(filename)[columnName]
现在,我有了可以在我输入的每个csv文件中找到的所有行的代码:

    match = pd.Series(list(set(file1.columnName) & set(file2.columnName) & set(file3.columnName) & set(file4.columnName)))

我如何合并上面的两段代码以查找文件夹中每个csv文件中的所有行,并在单个数据帧中返回匹配项?

我认为您可以先创建所有
系列的列表
,然后通过
reduce
动态查找匹配项:

#data from previous answer
vals = []
directory = os.fsencode(folderpath)
os.chdir(directory)
for file in os.listdir(directory):
    filename = os.fsdecode(file)
    if filename.endswith(".csv"):
        df1 = pd.read_csv(filename)['Name']
        vals.append(df1)

from functools import reduce
a = reduce(lambda x, y: set(x) & set(y), vals)
print (a)
{'Ben', 'Neil'}

df = pd.DataFrame({'col':list(a)})
print (df)
    col
0   Ben
1  Neil

如果您能展示这样一个数据帧的示例,以及您期望的结果是什么,这将非常有用。这听起来很像你上一个问题的意思。鉴于你选择了公认的答案,我上次认为你的意思显然是错的。通过使用一个明显的例子,让你清楚地知道你在寻找什么,这对你是有帮助的。