【发布时间】:2021-09-15 12:19:08
【问题描述】:
作为一个可重现的示例,我创建了以下数据框:
dictionary = {'Metropolitan area': ['New York City','New York City','Los Angeles', 'Los Angeles'],
'Population (2016 est.)[8]': [20153634, 20153634, 13310447, 13310447],
'NBA':['Knicks',' ',' ', 'Clippers']}
df = pd.DataFrame(dictionary)
为了将df['NBA'] 中的任何空格替换为“无”,我创建了以下函数:
def transform(x):
if len(x)<2:
return None
else:
return x
我使用.apply 方法在df['NBA'] 上应用:
df['NBA'].apply(transform)
这样做之后,我得到以下输出,这似乎是成功的:
> 0 Knicks
1 Missing Value
2 Missing Value
3 Clippers
Name: NBA, dtype: object
但是,这里的问题是,当我调用 df 时,df['NBA'] 没有被转换,并且我从一开始就得到了该列,并且空格仍然存在并且没有被 None 替换:
Metropolitan area Population (2016 est.)[8] NBA
0 New York City 20153634 Knicks
1 New York City 20153634
2 Los Angeles 13310447
3 Los Angeles 13310447 Clippers
我做错了什么?我误解了.apply 方法吗?
【问题讨论】: