根据字符串在不同数据帧中的值,在数据帧中用浮点替换字符串

2024-05-16 10:23:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

df.head()
Out[65]: 
            PU     IN     PR
NUTS_ID                     
BE       110.4  129.3  136.4
BG        72.1   74.4   73.2
CZ        68.3   75.9   89.1
DK        94.8  125.1  135.4
DE        77.4  101.1  113.5

df2.head()
Out[66]: 
        category
NUTS_ID         
BE111         PR
BE112         PR
BE113         PU
BE121         PR
BE122         IN

我想根据第二个数据帧的“category”列中的字符串的代码,将它们替换为第一个数据帧中相应的浮点值。例如,, 在第二个数据帧中,搜索第一个数据帧中以“BE”开头的所有行,然后用第一个数据帧中相应的浮点值替换它们的字符串值

结果应该是:

          category
NUTS_ID
BE111       136.4
BE112       136.4
BE113       110.4
BE121       136.4
BE122       129.3
...     

如果你能提供帮助,我将不胜感激。提前谢谢


Tags: 数据inidprbeoutheadnuts
2条回答

pd.DataFrame.lookup与一些字符串操作一起使用:

df2['category'] = df.lookup(df2.index.str[:2], df2['category'])

输出:

         category
NUTS_ID          
BE111       136.4
BE112       136.4
BE113       110.4
BE121       136.4
BE122       129.3

由于我们仅使用第一行,因此可以使用map

output = df2['category'].map(df.iloc[0,:].to_dict())

输出:

         category
NUTS_ID          
BE111       136.4
BE112       136.4
BE113       110.4
BE121       136.4
BE122       129.3

相关问题 更多 >