gpt4 book ai didi

python - Pandas :替换字符串中的值

转载 作者:太空宇宙 更新时间:2023-11-03 15:00:01 31 4
gpt4 key购买 nike

我有数据框,我尝试用其他 df 替换它

我使用:

df['term_code'] = df.search_term.map(rep_term.set_index('search_term')['code_action'])

但是我得到一个错误:

File "C:/Users/����� �����������/Desktop/projects/find_time_before_buy/graph (2).py", line 36, in <module>
df['term_code'] = df.search_term.map(rep_term.set_index('search_term')['code_action'])
File "C:\Python27\lib\site-packages\pandas\core\series.py", line 2101, in map
indexer = arg.index.get_indexer(values)
File "C:\Python27\lib\site-packages\pandas\indexes\base.py", line 2082, in get_indexer
raise InvalidIndexError('Reindexing only valid with uniquely'
pandas.indexes.base.InvalidIndexError: Reindexing only valid with uniquely valued Index objects

我应该改变什么?search_term 在哪里

729948                               None  
729949 None
729950 None
729951 пансионат джемете отдых 2016 цены
729952 None
729953 None
729954 купить телефон
729955 None
729956 вк
729957 None
729958 яндекс

rep_term 看起来像

search_term code_action
авито 6
вк 9
яндекс 12
мтс 7
связной 8
ситилинк 8

最佳答案

DataFrame rep_termsearch_term 中存在重复问题。

我模拟一下:

import pandas as pd

df = pd.DataFrame({'search_term':[1,2,3]})

print (df)
search_term
0 1
1 2
2 3

对于 search_term 中的值 1,您在 code_action 中有 2 值:

rep_term = pd.DataFrame({'search_term':[1,2,1], 'code_action':['ss','dd','gg']})
print (rep_term)
code_action search_term
0 ss 1
1 dd 2
2 gg 1


df['term_code'] = df.search_term.map(rep_term.set_index('search_term')['code_action'])
print (df)
#InvalidIndexError: Reindexing only valid with uniquely valued Index objects

因此,首先通过 duplicated 识别重复值的行:

print (rep_term[rep_term.duplicated(subset=['search_term'], keep=False)])
code_action search_term
0 ss 1
2 gg 1

然后您可以通过保留最后一个或第一个值 drop_duplicates 来消除口是心非

rep_term1 = rep_term.drop_duplicates(subset=['search_term'], keep='first')
print (rep_term1)
code_action search_term
0 ss 1
1 dd 2

rep_term2 = rep_term.drop_duplicates(subset=['search_term'], keep='last')
print (rep_term2)
code_action search_term
1 dd 2
2 gg 1

关于python - Pandas :替换字符串中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38869372/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com