我该如何修复这个错误:对于下面的代码gievn,有太多的值需要解压缩(应该是4)



此代码有什么问题?

import pandas as pd
url1 = 'https://raw.githubusercontent.com/ben519/DataWrangling/master/Data/users.csv'
url2 = 'https://raw.githubusercontent.com/ben519/DataWrangling/master/Data/sessions.csv'
url3 = 'https://raw.githubusercontent.com/ben519/DataWrangling/master/Data/products.csv'
url4 = 'https://raw.githubusercontent.com/ben519/DataWrangling/master/Data/transactions.csv'
lst = [url1, url2, url3, url4]
def read_func(url):
df = pd.read_csv(url)
return df
for i in lst:
users, sessions, products, transcation = read_func(i)

当我运行它时,我得到这个错误:

Traceback (most recent call last):
File "/main.py", line 15, in <module>
users, sessions, products, transcation = read_func(i)
ValueError: too many values to unpack (expected 4)
import pandas as pd
import numpy as np
url1='https://raw.githubusercontent.com/ben519/DataWrangling/master/Data/users.csv'
url2='https://raw.githubusercontent.com/ben519/DataWrangling/master/Data/sessions.csv'
url3='https://raw.githubusercontent.com/ben519/DataWrangling/master/Data/products.csv'
url4='https://raw.githubusercontent.com/ben519/DataWrangling/master/Data/transactions.csv'
lst=[url1, url2, url3, url4]
def read_func(lst):
dfs = []
for url in lst:
dfs.append(pd.read_csv(url))
return dfs
users, sessions, products, transcation = read_func(lst)

循环位于错误的位置。您希望将每个数据帧分配给相应的变量,而不是将每个数据框分配给所有变量:

users, sessions, products, transcation = (read_func(url) for url in lst)

您到底想做什么?是否将每个csv用作df?

如果是这种情况,则在不应该使用的地方使用解包语法。

read_func(url)只返回一个df,而您正试图将其解压缩为四个变量。

在这里,我将每个df保存在一个列表中,然后将它们解压缩到您想要的变量中。

data = []
for i in lst:
data.append(read_func(i))
users, sessions, products, transaction = data

最新更新