首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较Pandas中两列与NaNs的差异

比较Pandas中两列与NaNs的差异
EN

Stack Overflow用户
提问于 2020-08-17 22:21:57
回答 3查看 2.1K关注 0票数 4

我有以下数据:

代码语言:javascript
复制
case c1   c2
1    x    x
2    NaN  y
3    x    NaN
4    y    x
5    NaN  NaN 

我想得到一个列"match“,它将显示"c1”和"c2“中的值相等或不同的记录:

代码语言:javascript
复制
case c1   c2   match
1    x    x    True  
2    NaN  y    False
3    x    NaN  False
4    y    x    False
5    NaN  NaN  True 

我尝试了以下基于另一个堆栈溢出问题:Comparing two columns and keeping NaNs,但是,我不能同时纠正第4和第5种情况。

代码语言:javascript
复制
import pandas as pd
import numpy as np

df = pd.DataFrame({
    'case': [1, 2, 3, 4, 5],
    'c1': ['x', np.nan,'x','y', np.nan],
    'c2': ['x', 'y',np.nan,'x', np.nan],
})

cond1 = df['c1'] == df['c2']
cond2 = (df['c1'].isnull()) == (df['c2'].isnull())

df['c3'] = np.select([cond1, cond2], [True, True], False)

df
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-17 22:27:13

eqisna结合使用

代码语言:javascript
复制
df.c1.eq(df.c2)|df.iloc[:, 1:].isna().all(1)
#or
df.c1.eq(df.c2)|df.loc[:, ['c1','c2']].isna().all(1)
票数 4
EN

Stack Overflow用户

发布于 2020-08-17 22:36:22

代码语言:javascript
复制
import pandas as pd
import numpy as np

df = pd.DataFrame({
    'case': [1, 2, 3, 4, 5],
    'c1': ['x', np.nan,'x','y', np.nan],
    'c2': ['x', 'y',np.nan,'x', np.nan],
})


df['c3'] = df.apply(lambda row: True if str(row.c1) == str(row.c2) else False, axis=1)


print(df)

输出

代码语言:javascript
复制
   case   c1   c2     c3
0     1    x    x   True
1     2  NaN    y  False
2     3    x  NaN  False
3     4    y    x  False
4     5  NaN  NaN   True
票数 3
EN

Stack Overflow用户

发布于 2020-08-17 22:43:18

nuquinefillna结合使用

代码语言:javascript
复制
import numpy as np

df.fillna(np.inf)[['c1','c2']].nunique(1) < 2

或带有选项dropna=Falsedropna=False

代码语言:javascript
复制
df[['c1','c2']].nunique(1, dropna=False) < 2

Out[13]:
0     True
1    False
2    False
3    False
4     True
dtype: bool
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63459392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档