python:是不是可以使用字符串数据框映射值?

Posted

技术标签:

【中文标题】python:是不是可以使用字符串数据框映射值?【英文标题】:python: is it possible to map the values by using string dataframe?python:是否可以使用字符串数据框映射值? 【发布时间】:2019-03-21 06:29:04 【问题描述】:

我正在尝试在两个数据帧之间映射数据(数据来自使用 pandas 的 csv 文件)但我遇到了索引问题

第一个df是df1

0         CAT11/06
1         CAT11/100
2         CAT23/223
3         CAT33/14
4         CAT13/14 
5         DOG12/04 
6         DOG24/14
7         CAT24/112

第二个df是df2

0    CAT1
3    CAT2
4    CAT3
5    DOG1
6    DOG2

我想创建一个新的数据框来收集这样的预期数据并将其定义为 df3

0  CAT1 CAT11/06 | CAT11/100 | CAT13/14
1  CAT2 CAT23/223 | CAT24/112
2  CAT3 CAT33/14
3  DOG1 DOG12/04
4  DOG2 DOG24/14

【问题讨论】:

【参考方案1】:

使用injoin 的两个for 循环

df2['col2']=['|'.join(df1[[x in y for y in df1]].tolist()) for x in df2.col1]
df2
Out[347]: 
   col1                         col2
0  CAT1  CAT11/06|CAT11/100|CAT13/14
3  CAT2          CAT23/223|CAT24/112
4  CAT3                     CAT33/14
5  DOG1                     DOG12/04
6  DOG2                     DOG24/14

【讨论】:

感谢您的帮助,但我发现了错误 -> AttributeError: 'list' object has no attribute 'tolist' :'( @Sungjin 你的 df1 是列表吗?

以上是关于python:是不是可以使用字符串数据框映射值?的主要内容,如果未能解决你的问题,请参考以下文章

数据框列值映射

Pandas 映射到 TRUE/FALSE 作为字符串,而不是布尔值

python字典

如何使用带有编解码器值的 python .replace 来删除特殊字符?

python pandas用数字替换数据框中的字符串

python数据结构——映射