如何在python中查找和替换数据帧中的单个值

2024-04-23 08:26:35 发布

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

我有一个dataframe(dfdirnoswaps),其中一列包含isin,另一列包含所有行的一个值“Direction”。一个单独的数据帧(dfextended)只有一列也只包含isin,其中一些(但不一定全部)isin与另一个数据帧匹配。我希望能够匹配数据帧之间的公共isin,并且一旦这一点建立起来,仅当isin在两个数据帧中时,才将dfdirnoswaps中的另一列从“Direction”更改为“Extended”。在

我尝试的方法如下:

dfdirnoswaps = pd.concat([dfdirnoswaps, dfextended], axis =1)

将第二个数据帧附加到第一个数据帧。然而,这与相应行上的isin不匹配,而是愉快地将它们作为单独的行连接到第一个数据帧上。在

如果上述方法可行,我的下一步将是找到并替换如下:

^{pr2}$

('Strategy'是包含所有行的'Direction'的列的名称)

我考虑过如何在excel中处理这一问题,因此很可能有一种比上面提到的更有效的方法来实现这一点,我欢迎任何建议。在


Tags: 数据方法名称extendeddataframepd行上strategy
1条回答
网友
1楼 · 发布于 2024-04-23 08:26:35

如果我正确地理解了您的问题,您可以使用dataframe的isin()方法来实现这一点。我们先创建一些看起来像你的假数据:

import pandas as pd

df1 = pd.DataFrame({'ISIN': [1, 2, 3, 5]})
df1['Strategy'] = 'Direction'
print(df1)
   ISIN   Strategy
0     1  Direction
1     2  Direction
2     3  Direction
3     5  Direction

df2 = pd.DataFrame({'ISIN':[3, 4, 5, 6]})
print(df2)
   ISIN
0     3
1     4
2     5
3     6

现在我们使用isin()计算一个布尔掩码,并将这些结果更改为'Extended'

^{pr2}$

(注意,^{}方法检查每个值是否在另一个序列中;与"ISIN"列名的相似性纯粹是巧合)。在

相关问题 更多 >