首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用条件替换熊猫栏值?

如何用条件替换熊猫栏值?
EN

Stack Overflow用户
提问于 2021-02-07 14:34:23
回答 3查看 49关注 0票数 2

我需要用映射字典替换columnb值,但我不能拆分这些列,并将其和所有的内容映射回相同的位置,这将是一项繁琐的任务。在这方面任何帮助都会很好。

df:

代码语言:javascript
运行
复制
ColumnA   ColumB
0 Rick     3-1,4-5,9-8
1 Tim      6-3,1-2,1.3,5.8,7-9

Mapping_dict= {'3-1':'1','4-5':2,'9-8':3,
'6-3':4,'1-2':5,'1.3':6,'5.8':'7','7-9':'8'}

输出:

代码语言:javascript
运行
复制
  ColumnA   ColumB
  0 Rick     1,2,3
  1 Tim      4,5,6,7,8
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-02-07 14:49:14

您可以使用熊猫应用函数来映射映射字典的原始值:

代码语言:javascript
运行
复制
import pandas as pd

Mapping_dict= {'3-1':'1','4-5':2,'9-8':3,'6-3':4,'1-2':5,'1.3':6,'5.8':'7','7-9':'8'}
d = {'ColumnA': ['Rick', 'Tim'], 'ColumB': ['3-1,4-5,9-8', '6-3,1-2,1.3,5.8,7-9']}
df = pd.DataFrame(data=d)
df['ColumB'] = df['ColumB'].apply(lambda x: [Mapping_dict[y] for y in x.split(',')] )
票数 3
EN

Stack Overflow用户

发布于 2021-02-07 15:02:11

假设Mapping_dict包含作为字符串的所有值,则可以使用,它接受替换字典作为参数,然后可以用于替换ColumB中的值。

代码语言:javascript
运行
复制
df['ColumB'] = df['ColumB'].replace(Mapping_dict, regex=True)

代码语言:javascript
运行
复制
>>> df

  ColumnA     ColumB
0    Rick      1,2,3
1     Tim  4,5,6,7,8
票数 2
EN

Stack Overflow用户

发布于 2021-02-07 15:57:10

代码语言:javascript
运行
复制
ColumnA=['Rick','Tim']  
ColumnB=['3-1,4-5,9-8','6-3,1-2,1.3,5.8,7-9']

df=pd.DataFrame({'columnA':ColumnA,'columnB':ColumnB})

Mapping_dict= {'3-1':'1','4-5':2,'9-8':3,'6-3':4,'1-2':5,'1.3':6,'5.8':'7','7-9':'8'}

def lookup(columnString):
    elements=columnString.split(",")
    mylist=[str(Mapping_dict[element]) for element in elements]
    retVal=",".join(mylist)
    return retVal

df['columnB']=df['columnB'].apply(lambda x: lookup(x))
print(df)
output:

  columnA    columnB
0    Rick      1,2,3
1     Tim  4,5,6,7,8
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66089086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档