替换Pandas DataFrame列表中的值

sd2nnvve  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(132)

假设有一个DataFrame,如下所示

import numpy as np
import pandas as pd 

df = pd.DataFrame({'store':range(1,4),
                   'food':[['fish', 'apple'],
                           ['orange', 'water'],
                           ['egg', 'fish']]})  
df

store   food
    1   [fish, apple]
    2   [orange, water]
    3   [egg, fish]

我想在所有的df中用“milk”替换“fish”。所以新的DataFrame应该如下所示

store   food
    1   [milk, apple]
    2   [orange, water]
    3   [egg, milk]

我尝试过使用“for循环”来完成此操作,但似乎是错误的

food1 = []
for i in range(df.shape[0]):
    for j in range(len(df['food'][0])):
        if df['food'][i][j] == 'fish':
            food1.append('milk')
        else:
            food1.append(df['food'][i][j])
food1
['milk', 'apple', 'orange', 'water', 'egg', 'milk']

有什么建议如何做到这一点?非常感谢提前!

ryhaxcpt

ryhaxcpt1#

下面是一句简单的话,可以做到这一切:

df["food"] = df["food"].map(lambda x: list(map(lambda x: x.replace('fish', 'milk'), x)))

编辑:删除无用代码

相关问题