pandas - Pandas - 根据 if 条件创建新列
问题描述
我有以下数据框,我想创建一个列'poster'
来显示用户是否comment_id != np.nan
和np.nan
是否否则。
我尝试在 for 循环中使用 if 语句来执行此操作,但'poster'
如果comment_id 列中有一个整数,我不会只在列中获取用户名,而是在两个整数的“海报”列中获取用户名并np.nan
在'comment_id'
列中。可能只有一件小事是错误的,但我似乎无法弄清楚。
非常感谢您帮助我!
d = {'comment_id':[1, np.nan, 2, np.nan, np.nan, 3],
'user': ["Bob", "Ben", "Ben", "Charly", "Steve", "Tracy"]}
toydf = pd.DataFrame(d)
toydf['poster'] = np.nan
for n in toydf['comment_id']:
if n != np.nan:
toydf['poster']=toydf['user']
else:
toydf['poster']= np.nan
解决方案
loc
comment_id不为空的行,然后保存用户值
toydf.loc[toydf['comment_id'].notna(), 'poster'] = toydf['user']
#output
comment_id user poster
0 1.0 Bob Bob
1 NaN Ben NaN
2 2.0 Ben Ben
3 NaN Charly NaN
4 NaN Steve NaN
5 3.0 Tracy Tracy
推荐阅读
- r - 为什么当我尝试制作子集数据框时我得到了很多 NA
- typescript - 当我只知道该对象键的模式时如何定义类型?
- java - 如何在 Java 中使用 XOR 开发一个OTPInputStream
- php - drupal 7中用户超时值的覆盖会话
- ios - Swift 解码错误 - (怀疑:Some Field Sometime Empty)
- python - 如何在 python django 中更新 json 数据(即使用 Id 值)?
- macos - MacOS 上的 Dart VM 嵌入 (libdart_jit.a) 产生“dyld: Symbol not found: __ZN4dart13FLAG_profilerE”
- reactjs - 无法传递 props 值?
- python - QTextBrowser在加载markdown文件时不显示内容
- html - 如何消除导航栏按钮之间的间隙