在Python中,有没有一种方法可以从循环中创建数据帧并使用数据帧名称中的数字?
我希望从GitHub读入Python中的48个文件,并希望使用循环来实现这一点。有没有办法用循环中的数字来命名数据帧在Python中,有没有一种方法可以从循环中创建数据帧并使用数据帧名称中的数字?,python,pandas,dataframe,Python,Pandas,Dataframe,我希望从GitHub读入Python中的48个文件,并希望使用循环来实现这一点。有没有办法用循环中的数字来命名数据帧 number = 1 while number < 48 : gameweek[number] = pd.read_csv("https://raw.githubusercontent.com/vaastav/Fantasy-Premier-League/master/data/2019-20/gws/gw"+str(number)+&
number = 1
while number < 48 :
gameweek[number] = pd.read_csv("https://raw.githubusercontent.com/vaastav/Fantasy-Premier-League/master/data/2019-20/gws/gw"+str(number)+".csv")
number = number+1
number=1
当数量<48时:
游戏周[编号]=pd.read\u csv(“https://raw.githubusercontent.com/vaastav/Fantasy-Premier-League/master/data/2019-20/gws/gw“+str(编号)+.csv”)
数字=数字+1
欢迎任何关于如何最好地做到这一点的建议。试试这个
number = 1
gameweek = {}
while number < 48 :
gameweek['gw_' + str(number)] = pd.read_csv("https://raw.githubusercontent.com/vaastav/Fantasy-Premier-League/master/data/2019-20/gws/gw"+str(number)+".csv")
number += 1
number=1
游戏周={}
当数量<48时:
游戏周['gw\'+str(编号)]=pd.read\U csv(“https://raw.githubusercontent.com/vaastav/Fantasy-Premier-League/master/data/2019-20/gws/gw“+str(编号)+.csv”)
数字+=1
你的代码这对你想做的事情很有好处,你只需要将你的gameweek
结构初始化到字典中,所以你只需要在while循环之前添加以下行:gameweek={}呃,你发布的代码有什么问题吗?唯一的问题是gameweek[number]
是未初始化的变量,因此在使用前将gameweek
初始化为空列表[]
(或空dict`{}')。这与熊猫或数据帧本身无关。为什么不让一个数据帧和另一个列来保存游戏周呢?@vishnudev这是一个不错的选择!如果我不能让单独的数据帧正常工作,我将对此进行调查。@karl_knetchel它不允许我为每个游戏周设置单独的数据帧,这正是我试图实现的。有人建议我为每个游戏周创建一个字典键——这很有效!尽管vishnudev确实指出,在处理较大的数据集时,这可能不是内存效率高的方法。这种使用dict处理较小数据集的解决方案是好的。但是对于更大的数据集,它只会增加内存。我知道,尤其是如果你想得到48页的完整数据,我认为最好的选择可能是将每一页保存在不同的txt文件中。你觉得怎么样?那会有什么帮助?也一样。从本地和远程读取对记忆没有帮助@Giovanni。@Giovanni谢谢你,你和Ajay A有相同的想法,这很有效。@vishnudev谢天谢地,这只使用了少量的数据-528行32列。我真的很想知道您对大型数据集的最佳解决方案的看法。我很高兴,我很有帮助。另一个技巧exec
是一个内置函数,使用它可以避免使用字典