Python 熊猫:替换字符串中的值
我有数据帧,我尝试从其他df替换它 我使用:Python 熊猫:替换字符串中的值,python,string,pandas,dataframe,duplicates,Python,String,Pandas,Dataframe,Duplicates,我有数据帧,我尝试从其他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['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
而且rep_term
看起来像
search_term code_action
авито 6
вк 9
яндекс 12
мтс 7
связной 8
ситилинк 8
DataFrame
rep\u term
列search\u term
中存在重复项问题
我模拟它:
import pandas as pd
df = pd.DataFrame({'search_term':[1,2,3]})
print (df)
search_term
0 1
1 2
2 3
对于search\u term
中的值1
,在code\u 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
因此,首先通过以下方式确定重复VAUE的行:
然后,您可以通过将最后一个或第一个值保留为
我应该重命名列吗?当这个列的名称是另一个时,它也返回了这个错误。给我一点时间,我补充一下你们能做些什么来回答这个问题。
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
print (rep_term[rep_term.duplicated(subset=['search_term'], keep=False)])
code_action search_term
0 ss 1
2 gg 1
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