首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python :创建多个dfs并连接它们

Python :创建多个dfs并连接它们
EN

Stack Overflow用户
提问于 2021-03-23 23:16:32
回答 1查看 131关注 0票数 0

我只是想知道如何在python中编写一个For循环来重复创建变量,如下所示:

代码语言:javascript
复制
file1 = '160321-PCU1.csv'
file2 = '160321-PCU2.csv'
file3 = '160321-PCU3.csv'

代码语言:javascript
复制
file24 = '160321-PCU24.csv'

所以我在下面写了一个循环代码。但这给了我语法错误。

代码语言:javascript
复制
file = '160321-PCU'

for i in range(1,25):
 'file'+str(i) = '160321-PCU'+str(i)+'.csv'

但是这给了我错误..。

然后,我还将循环以下内容,在其中执行以下操作.如何压缩代码并正确地执行循环?

代码语言:javascript
复制
#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为止:

代码语言:javascript
复制
df24 = pd.read_csv(gdrive_url+file24+'.csv', sep=';', names=['Date','Time_Decimal','Parameter','Value'])

UPDATE! Hi all,我尝试了下面的操作,但我仍然在试图找出下一步的方法,即将所有的dfs实际结合在一起。

代码语言:javascript
复制
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?

谢谢你们所有人。

EN

回答 1

Stack Overflow用户

发布于 2021-03-23 23:27:05

你已经接近了,但是你对变量的创建有错误的想法。您不需要创建n个变量来存储n个值。您最好使用可迭代的方法,比如listdict。它将大大提高内存效率和易于扩展。例如,如果突然有50个文件,则不希望键入50条x = y行。

列表法

代码语言:javascript
复制
file_names = []
for i in range(1, 25):
    f_name = f'160321-PCU{i}.csv'
    file_names.append(f)
代码语言:javascript
复制
>>> file_names
['160321-PCU1.csv', '160321-PCU2.csv', '160321-PCU3.csv', ..., '160321-PCU24.csv']

然后,您可以在创建DataFrames时执行类似的操作。

代码语言:javascript
复制
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

代码语言:javascript
复制
file_names = {}
for i in range(1, 25):
    f_name = f'160321-PCU{i}.csv'
    file_names[f'file{i}'] = f_name
代码语言:javascript
复制
>>> file_names
{
    'file1': '160321-PCU1.csv',
    'file2': '160321-PCU2.csv', 
    'file3': '160321-PCU3.csv', 
    ..., 
    'file24': '160321-PCU24.csv'
}

然后,在创建DataFrames时,需要遍历.values() of file_names,如下所示:

代码语言:javascript
复制
for file in file_names.values():
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66772608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档