对于模糊的描述,我感到抱歉,但是我有一个简单的问题,为什么此代码可以正常工作:
df = pd.DataFrame({'city': ['London', 'New York', 'Berlin', 'Seoul', 'Paris', 'Tokyo', 'Bangkok', 'Las Vegas', 'Cape Town'], 'continent': ['Europe', 'America', 'Europe', 'Asia', 'Europe', 'Asia', 'Asia', 'America', 'Africa']})
df.groupby('continent').agg(lambda x: print(x))
8 Cape Town
Name: city, dtype: object
1 New York
7 Las Vegas
Name: city, dtype: object
3 Seoul
5 Tokyo
6 Bangkok
Name: city, dtype: object
0 London
2 Berlin
4 Paris
Name: city, dtype: object
Out[372]:
city
continent
Africa None
America None
Asia None
Europe None
并且此代码给出了x尚未定义的错误(同时在先前的代码中也使用了x):
df.groupby('continent').agg(lambda x: print(i) for i in x)
Traceback (most recent call last):
File "<ipython-input-373-7d68f6ea91a2>", line 1, in <module>
df.groupby('continent').agg(lambda x: print(i) for i in x)
NameError: name 'x' is not defined
答案 0 :(得分:1)
print(i) for i in x
语法只能用作列表理解表达式的一部分。
尝试:
df.groupby('continent').agg(lambda x: [print(i) for i in x])