python - 如何迭代替换数据框中特定列的值?
问题描述
我有一个如下所示的数据框:
newDF = pd.DataFrame()
output_table = newDF
output_table['Keyword'] = 'abgeg','abgegang', 'abgegeb'
output_table['ID'] = '1', '2', '3'
还有一个看起来像这样的嵌套列表:
kal =[
['abgeglichen', 'abgeg'],
['abgegangen', 'abgegang'],
['abgegeben', 'abgegeb']
]
如您所见,子列表中 index[1] 处的元素是词干,并且对应于数据框中关键字列中的值。
现在我想用索引 [0] 处的子列表中的值替换数据框中关键字列的值。
我想要的结果:
output_table['Keyword'] = 'abgeglichen','abgegangen', 'abgegeben'
output_table['ID'] = '1', '2', '3'
我试过这段代码:
def rep(kal, df):
keys = []
for line in kal:
for index, Keyword in df.iteritems():
if line[1] == Keyword:
a = Keyword.replace(Keyword, line[0])
keys.append(a)
return keys
我知道这个函数只是返回列表键,但我不太确定如何正确地完成它以获得我想要的结果。
有人可以帮忙吗?
解决方案
series.replace
在输入列表中将键切换为值并将值切换为键后使用(转换为 dict 后)
output_table['Keyword']=output_table['Keyword'].replace({v:k for k,v in dict(kal).items()})
Keyword ID
0 abgeglichen 1
1 abgegangen 2
2 abgegeben 3
推荐阅读
- r - R:如何在R中按多个列+图表进行聚合和分组
- reactjs - 如何一个接一个地调度两个异步 redux 动作?
- angular - 如何使用 Cordova 将 Google Play 应用购买集成到 Angular 应用?
- javascript - 投掷者;// 未处理的“错误”事件。使用 Promise 从 MongoDB 加载图像
- node.js - 按字符串长度搜索弹性查询
- python - 它是否存在用于 matplotlib 图形的增强工具栏?
- android - Android Asynctask arraylist 总是返回 0
- java - pom.xml 的依赖项未解决
- python - 将字符串的子字符串转换为字节,然后在python中转换为整数
- file - 在游戏中更改地图