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