python - 如何从对应的字符串列表映射数据框中的字符串
问题描述
假设我有这个带有特定列 Tweet 的数据框 A:
TWEET
-----
kamu ngajak gelut
dtnggu kedatangannya
dia jadi pampir
还有另一个数据框 B,结构如下:
ORIGIN TRANSFORMED
-----------------------------
ngajak mengajak
dtnggu ditunggu
pamir vampir
有没有办法将数据框 A 的字符串映射到数据框 B,所以只要有字符串匹配,来自 TRANSFORMED 列的单词将根据 TWEET 列中的 ORIGIN 列替换相应的字符串?我想要的结果:
TWEET
-----
kamu mengajak gelut
ditunggu kedatangannya
dia jadi vampir
任何帮助表示赞赏。谢谢你。
解决方案
这可能会对您有所帮助。
我用你的数据为你的场景创建了两个数据框。
df1:
data = '''kamu ngajak gelut dtnggu kedatangannya dia jadi pampir'''
df1 = pd.DataFrame({'TWEET': [data]})
df2:
ORIGIN TRANSFORMED
0 ngajak mengajak
1 dtnggu ditunggu
2 pampir vampir
代码:
for or_word in df2['ORIGIN'].values.tolist():
if any(df1['TWEET'].str.contains(or_word)):
transformed_word = df2['TRANSFORMED'].iloc[df2.index[df2['ORIGIN'] == or_word].tolist()[0]]
print(transformed_word)
df1['TWEET'] = df1['TWEET'].str.replace(or_word, transformed_word)
输出:
['kamu mengajak gelut ditunggu kedatangannya dia jadi vampir']
推荐阅读
- python - 如何从对象列表中提取值?
- ios - UITableViewCell 阴影在滚动时消失(iOS 13)
- javascript - 防止 setAttribute 运行两次
- javascript - 使用 for await...of 与同步迭代
- android - 如何为自定义的 android 谷歌地图信息窗口添加阴影
- android - 如何在 android 10 中获取 IMEI 号码?唯一标识设备的任何替代方案?
- javascript - Javascript可填写的pdf表格
- android - 如何获取 NestedScrollview 的 ACTION_UP 触摸事件
- c# - C# & Oracle 查询数据库与组织的关系
- javascript - 仅显示部分 scss