Python - 将更改应用于整个列

标签 python pandas apply

修改整列中所有值的最佳方法是什么?

这就是它的样子:

data.locations.head()    

0           [{'name': 'Chevy Chase, MD'}]
1                [{'name': 'Irvine, CA'}]
2    [{'name': 'San Francisco Bay Area'}]
3                 [{'name': 'Macon, GA'}]
4               [{'name': 'Fremont, CA'}]
Name: locations, dtype: object

我想把它改成这样:

0           [{'Chevy Chase, MD'}]
1                [{'Irvine, CA'}]
2    [{'San Francisco Bay Area'}]
3                 [{'Macon, GA'}]
4               [{'Fremont, CA'}]

最佳答案

您可以使用apply通过[0]选择list中的第一个dict,然后选择 名称:

print (df.locations.apply(lambda x: [{x[0]['name']}]))
0           [{Chevy Chase, MD}]
1                [{Irvine, CA}]
2    [{San Francisco Bay Area}]
3                 [{Macon, GA}]
4               [{Fremont, CA}]
Name: locations, dtype: object

关于Python - 将更改应用于整个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41942789/

相关文章:

python - 透明地将值分配给自定义数字类型

python - flask-security:最小化数据库命中

python - 如何在 python session 中获取 duckdb 可见的类表对象列表?

python - 为什么这段代码在一种情况下有效,而在另一种情况下却不行?

r - 查找大于 0 的最小值

r - 计算 R 矩阵中每列特定整数的数量

python - 尝试除了打开文件 python

python - 如何使用 sklearn 管道缩放 Keras 自动编码器模型的目标值?

python - 将 Json 转换为 SQL 表

python - 为什么我需要 lambda 来将函数应用于 Pandas Dataframe?