我只是想知道如何在python中编写一个For循环来重复创建变量,如下所示:
file1 = '160321-PCU1.csv'
file2 = '160321-PCU2.csv'
file3 = '160321-PCU3.csv'等
file24 = '160321-PCU24.csv'所以我在下面写了一个循环代码。但这给了我语法错误。
file = '160321-PCU'
for i in range(1,25):
'file'+str(i) = '160321-PCU'+str(i)+'.csv'但是这给了我错误..。
然后,我还将循环以下内容,在其中执行以下操作.如何压缩代码并正确地执行循环?
#Read csv file and assign header
df1 = pd.read_csv(gdrive_url+file1+'.csv', sep=';', names=['Date','Time_Decimal','Parameter','Value'])
df2 = pd.read_csv(gdrive_url+file2+'.csv', sep=';', names=['Date','Time_Decimal','Parameter','Value'])
df3 = pd.read_csv(gdrive_url+file2+'.csv', sep=';', names=['Date','Time_Decimal','Parameter','Value'])直到到达df24为止:
df24 = pd.read_csv(gdrive_url+file24+'.csv', sep=';', names=['Date','Time_Decimal','Parameter','Value'])UPDATE! Hi all,我尝试了下面的操作,但我仍然在试图找出下一步的方法,即将所有的dfs实际结合在一起。
file = '160321-PCU'
for i in range(1,25):
filename = file+str(i)+'.csv'
df = pd.read_csv(gdrive_url+filename, sep=';', names=['Date','Time_Decimal','Parameter','Value'])下一步是连接df1,df2,.df24?
谢谢你们所有人。
发布于 2021-03-23 23:27:05
你已经接近了,但是你对变量的创建有错误的想法。您不需要创建n个变量来存储n个值。您最好使用可迭代的方法,比如list或dict。它将大大提高内存效率和易于扩展。例如,如果突然有50个文件,则不希望键入50条x = y行。
列表法
file_names = []
for i in range(1, 25):
f_name = f'160321-PCU{i}.csv'
file_names.append(f)>>> file_names
['160321-PCU1.csv', '160321-PCU2.csv', '160321-PCU3.csv', ..., '160321-PCU24.csv']然后,您可以在创建DataFrames时执行类似的操作。
dfs = []
for file in file_names:
df = pd.read_csv(gdrive_url+file, sep=';', names=['Date','Time_Decimal','Parameter','Value'])
dfs.append(df)字典法
dict使用键/值配对。下面的键是filen,值是160321-PCUn.csv
file_names = {}
for i in range(1, 25):
f_name = f'160321-PCU{i}.csv'
file_names[f'file{i}'] = f_name>>> file_names
{
'file1': '160321-PCU1.csv',
'file2': '160321-PCU2.csv',
'file3': '160321-PCU3.csv',
...,
'file24': '160321-PCU24.csv'
}然后,在创建DataFrames时,需要遍历.values() of file_names,如下所示:
for file in file_names.values():https://stackoverflow.com/questions/66772608
复制相似问题