python - 在 Python 中创建与另一列检查相等性的新列
问题描述
df
pycld3 spacy seqtolang langid langdetect text_language
0 lt unknown ro en pl unknown
1 bg unknown fi en tl unknown
3 no id in de no no
4 en en zh en en en
5 en en en en en en
我想创建一个新列来检查与基列相比列的值:text_language
. 如果df['pycld3']
==df['text_language']
中的值,则新列df['pycld3_true']
= 1。如果不是,则值为 0。我想对其他列执行相同的操作。
预期产出
df
pycld3 spacy seqtolang langid langdetect text_language pycld3_true spacy_true ....
0 lt unknown ro en pl un 0 1
1 bg unknown fi en tl un 0 1
3 no id in de no no 1 0
4 en en zh en en en 1 1
5 en en en en en en 1 1
我现在能想到的代码是:
for row in df['pycld3']:
if df['pycld3'][i] == df['text_language'][i]:
df['pycld3_true'] == 1
elif:
df['pycld3'][i] != df['text_language'][i]:
df['pycld3_true'] == 0
else:
df['pycld3_true']== 'nan'
上面的代码不正确且效率低下。
解决方案
df
Out[6]:
one two three
0 10 1.2 4.2
1 15 70 0.03
2 8 5 0
df['new'] = df['one']==df['two']
df
Out[8]:
one two three new
0 10 1.2 4.2 False
1 15 70 0.03 False
2 8 5 0 False
df['new'] = df['new'].astype(int)
df
Out[10]:
one two three new
0 10 1.2 4.2 0
1 15 70 0.03 0
2 8 5 0 0
推荐阅读
- sql - 如何在 SQL Server 中同时独立运行多个简单的 select 语句?
- c++ - 程序使用复制构造函数而不是移动构造函数
- php - 如何在 laravel 7 中更新或创建多个组?
- java - Android SDK 组件中的 SDK 工具和构建工具有什么区别?
- rest - 从 SP 2013 迁移到 SPO 日期时间问题
- javascript - javascript搜索没有效果
- javascript - 我可以在烧瓶中返回两个 ByteArray 吗?
- html - 滚动条重组网页文本
- python - 网页抓取 & BeautifulSoup
- 解析
- mysql - MySQL - 当多个表保持连接时获取行数