Python Pandas-将2个字符串列转换为布尔值并合并

Python Pandas-将2个字符串列转换为布尔值并合并,python,pandas,merge,Python,Pandas,Merge,你们这些家伙!我对熊猫还不熟悉,在这个问题上我有点不知所措。我有两列,其中有文本。我想创建一个新列,它是布尔值的二进制表示形式。如果这两列有值,则应将其转换为true;如果没有值,则应将其转换为false。我尝试过使用notnull()和isnull(),但是空值的结果是True而不是False 我想拿这个: dicts = {"names": ["John", "Jill", "Michael"], &qu

你们这些家伙!我对熊猫还不熟悉,在这个问题上我有点不知所措。我有两列,其中有文本。我想创建一个新列,它是布尔值的二进制表示形式。如果这两列有值,则应将其转换为true;如果没有值,则应将其转换为false。我尝试过使用notnull()和isnull(),但是空值的结果是True而不是False

我想拿这个:

    dicts = {"names": ["John", "Jill", "Michael"], "ages": ["8", " ", " "]}
    df = pd.DataFrame(dicts)
并将其转换为(其中null值的计算结果为false:

---------------------
|  names   |  ages  |
----------------------
   True    |   True
   True    |   False
   True    |   False

Then merge them (where the True values are dominant):

--------------------------------
|  names   |  ages  |  combined |
---------------------------------
   True    |  True  |   True
   True    |  False |   True
   True    |  False |   True

The final product should look like this:

--------------------------------
|  names   |  ages  |  combined |
---------------------------------
   John    |    8   |     1
   Jill    |        |     1
  Michael  |        |     1

 
如何修复此问题?

您可以这样做

df['combined'] = df.fillna(' ').ne(' ').any(axis=1).astype(int)
print(df)
输出

     names ages  combined
0     John    8         1
1     Jill              1
2  Michael              1
你可以

df['combined'] = df.fillna(' ').ne(' ').any(axis=1).astype(int)
print(df)
输出

     names ages  combined
0     John    8         1
1     Jill              1
2  Michael              1

为什么最后一个是零?你是对的…我半睡半醒。我一定是打错了为什么最后一个是零?你是对的…我半睡半醒。我一定是打错了。打错了。非常好!非常感谢!我已经挣扎了一个小时左右,试图弄明白。@NoSoyTuMadre很高兴我能帮上忙。打错了。非常好!非常感谢!我一直在挣扎“我等了大约一个小时,想弄明白。”NoSoyTuMadre很高兴我能帮上忙