Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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
如何迭代20个.csv文件,对每个文件进行计算[计算部分,如代码所示],并在python中创建separate.scv输出文件? 与每次命名文件不同,我想迭代20个文件_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

如何迭代20个.csv文件,对每个文件进行计算[计算部分,如代码所示],并在python中创建separate.scv输出文件? 与每次命名文件不同,我想迭代20个文件

如何迭代20个.csv文件,对每个文件进行计算[计算部分,如代码所示],并在python中创建separate.scv输出文件? 与每次命名文件不同,我想迭代20个文件,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,如果df2是静态的,您只想对20个文件进行循环,那么您可以使用os和re来减少需要编写的代码量 import pandas as pd A=pd.read_csv("C:/Users/amulya/Desktop/graves lab/Mani/HIDDEN WORDS/Hidden_word_4.csv") df1=pd.DataFrame(A) B=pd.read_csv("C:/Users/amulya/Desktop/graves lab/words.csv") df2=pd.Data

如果
df2
是静态的,您只想对20个文件进行循环,那么您可以使用
os
re
来减少需要编写的代码量

import pandas as pd 
A=pd.read_csv("C:/Users/amulya/Desktop/graves lab/Mani/HIDDEN WORDS/Hidden_word_4.csv")
df1=pd.DataFrame(A)
B=pd.read_csv("C:/Users/amulya/Desktop/graves lab/words.csv")
df2=pd.DataFrame(B)
C=df1[df1.col1.isin(df2.col1)]``
df3=pd.DataFrame(C)
df3.to_csv("C:/Users/amulya/Desktop/graves lab/Mani/HIDDEN WORDS/out4.csv", encoding='utf-8', index=False)

这假设路径中只有那些名称中包含
'Hidden\u word.
的文件是您要分析的文件,但如果不是这样,您可以修改列表的创建,也可以考虑更多的文件命名和组织,以方便类似的操作。

您的帖子中几乎没有足够的信息来回答这个问题。当前代码有什么问题?什么是“一些计算”?你到底坚持什么?请创建一个我想运行此代码的“Hidden_word_4.csv”并获得输出“out4.csv”,就像Hidden_word 1,Hidden_word 2…直到20,以及get out 1,out2…直到20。谢谢欢迎来到SO。不幸的是,这不是一个讨论论坛或教程。请花时间阅读该页面上的其他链接。花些时间练习这些例子。它将让您了解Python提供的帮助您解决问题的工具。。。在一个循环中;使用字符串连接或字符串格式为输入和输出文件构造字符串;将代码放入循环中,并对已分配字符串的变量进行操作。
import pandas as pd
import os
import re

path = "C:/Users/amulya/Desktop/graves lab/Mani/HIDDEN WORDS/"
df2 = pd.read_csv("C:/Users/amulya/Desktop/graves lab/words.csv")

files = [file for file in os.listdir(path) if 'Hidden_word_' in file]

for file in files:
    num = re.search('.*_(\d{1,2})', file)[1]
    df1 = pd.read_csv(path + file)
    df3 = df1[df1.col1.isin(df2.col1)]
    df3.to_csv(path+'out'+num+'.csv')