Python 如何用数据框列中的字符串列表替换单个字符串

Python 如何用数据框列中的字符串列表替换单个字符串,python,list,Python,List,我想用数据框列中的字符串列表替换单个字符串。我尝试了下面的代码,但无法执行。它只是替换单个字符串 import pandas as pd # initialize list of lists data = [['tom', 10,'aaaaa'], ['nick', 15,'vvvvv'], ['juli', 14,'sssssss']] # Create the pandas DataFrame df = pd.DataFrame(data, columns = ['Name', 'Ag

我想用数据框列中的字符串列表替换单个字符串。我尝试了下面的代码,但无法执行。它只是替换单个字符串

import pandas as pd
# initialize list of lists 
data = [['tom', 10,'aaaaa'], ['nick', 15,'vvvvv'], ['juli', 14,'sssssss']] 
# Create the pandas DataFrame 
df = pd.DataFrame(data, columns = ['Name', 'Age','sex']) 
replacements = {'aaaaa': ['M','H'],'vvvvv': ['F','L']}
df['new']=df['sex'].replace(replacements)
print(df)
获取错误 ValueError:无法将不匹配的长度分配给掩码数组。
您能帮我解决这个问题吗。

有一种方法可以解决这个问题,您可以将您的列转换为列表。如果你把分离器修好了,那么你可以这样绕着它转

df.sex=df.sex.apply(lambda x:[x])#这将把它们转换为列表
df.sex=df.sex.str[0]。替换('aaaaa','M,H')。应用(lambda x:x.split(“,”))
此外,您还可以将
'aaaaa'
替换为要替换的项目列表,如
['aaaaa',vvvv']
并将其映射到
['M,H',U,F']

这是一种令人讨厌的方法,但也是一种方法

0       [M, H]
1      [vvvvv]
2    [sssssss]
前-
cols=['aaaaa','vvvv']
new\u cols=['M,H','F,V']

df.sex=df.sex.str[0]。替换(cols,new_cols)。应用(lambda x:x.split(','))

您必须将列转换为获取列表或将列表元素组合为字符串。我想用[“F”,“L”]替换“vvv”。如何一次完成两行添加到答案中,这应该适用于多个列。您是否有其他建议。应该可以,我得到了显示的结果。你能详细说明一下你现在得到的结果吗?我没有别的办法,但我会考虑一下,等我有了主意再回复
0       [M, H]
1       [F, V]
2    [sssssss]