如果列是值列表,如何替换列中的值?
How to replace values in a column if column is a list of values?
我有一个如下所示的数据集:
ID
Language
1
2945
2
2945, 2344
3
NaN
4
2945, 5657,2344
我希望它看起来像这样:
ID
Language
1
English
2
English, Arabic
3
NaN
4
English, French, Arabic
如果我知道如何替换值:
({2945:'English',2344:'Arabic',5657:'French'})
我试过这个:
df['Language'].str.replace({2945:'English',2344:'Arabic',5657:'French'})
但是没用
我们可以尝试使用 str.replace
和 lambda 函数:
d = {2945:'English', 2344:'Arabic', 5657:'French'}
df["Language"] = df["Language"].str.replace(r'\d+', lambda m: d[int(m.group())])
我有一个如下所示的数据集:
ID | Language |
---|---|
1 | 2945 |
2 | 2945, 2344 |
3 | NaN |
4 | 2945, 5657,2344 |
我希望它看起来像这样:
ID | Language |
---|---|
1 | English |
2 | English, Arabic |
3 | NaN |
4 | English, French, Arabic |
如果我知道如何替换值:
({2945:'English',2344:'Arabic',5657:'French'})
我试过这个:
df['Language'].str.replace({2945:'English',2344:'Arabic',5657:'French'})
但是没用
我们可以尝试使用 str.replace
和 lambda 函数:
d = {2945:'English', 2344:'Arabic', 5657:'French'}
df["Language"] = df["Language"].str.replace(r'\d+', lambda m: d[int(m.group())])