我需要导入大约30个csv文件到python,为此我有一个for循环,但我需要转换为列表理解
所有文件的结构都是相同的,它们具有相同的列名,其中我只需要代码中提到的很少的列,并且需要创建一个可以区分数据的列
for循环
import pandas as pd
cwd = os.getcwd()
dirs =os.listdir(cwd)
dfx=[]
for items in dirs:
if items.find('GSVA')>0 and items.find('.csv')>0:
x=cwd+'\\'+items
temp_df=pd.read_csv((x),encoding = "ISO-8859-1")
temp_df=temp_df.loc[::,['S.No.','Item','2014-15']]
temp_df['State']=items.split('-')[1]
dfx.append(temp_df)
gsva = pd.concat(dfx)我试过下面的方法,但不起作用。
import os
cwd = os.getcwd()
directory = os.listdir(cwd)
gsva = [(gsva.append(temp)
temp['State']=items.split('-')[1]
temp = temp.loc[::,['S.No.','Item','2014-15']]
temp = pd.read_csv(cwd+'\\'+items)
for items in directory
if items.find('GSVA')>0 ]
gsva_1 = pd.concat(gsva)发布于 2019-04-24 22:07:04
import os
import pandas as pd
cwd = os.getcwd()
dirs = filter(lambda x: x[1]>=0 and x[2]>0, [(x, x.find('.csv'), x.find('GSVA')) for x in os.listdir(cwd)])
temp_df = [pd.read_csv((x),encoding = "ISO-8859-1") for x in [cwd+'\\'+x for x in dirs]]
def add_state(x):
x['State'] = x.split('-')[1]
return x
gsva = pd.concat(list(map(add_state, [temp_df.loc[::,['S.No.','Item','2014-15']] for x in temp_df])))https://stackoverflow.com/questions/55831328
复制相似问题