python - 熊猫数据根据条件变化
问题描述
我有具有特殊字符的数据,我想更改条件单元格值。
数据位于前几行 df_orig 之下:
idx A B C D
0 0.5 2 5 #
1 3 5 8 %
2 6 8 10 $
3 9 10 15 $
4 11 15 18 #
我想更改 D 中的 $、A = 0 和 B = C 的单元格值
输出应该改变:
idx A B C D
0 0.5 2 5 #
1 3 5 8 %
2 0 10 10 $
3 0 15 15 $
4 11 15 18 #
我最后尝试了
change = df_orig.loc[(df.orig['D'] == '$'), df_orig['A'] == '0'& df_orig['B'] = df_orig['c']
但它没有用。
解决方案
DataFrame.copy
如果需要 new则使用DataFrame
,然后单独设置新值:
df = df_orig.copy()
m = df['D'].eq('$')
#alternative
#m = df['D'] == '$'
df.loc[m, 'A'] = 0
df.loc[m, 'B'] = df.C
print (df)
A B C D
idx
0 0.5 2 5 #
1 3.0 5 8 %
2 0.0 10 10 $
3 0.0 15 15 $
4 11.0 15 18 #
也可以一起使用:
m = df['D'].eq('$')
df.loc[m, ['A','B']] = df.assign(E=0).loc[m, ['E','C']].values
推荐阅读
- ffmpeg - 使用 ffmpeg 库转换流格式
- docker - 如何在 docker-compose.yml 中运行多个 shell 脚本
- jpa - 如何为不提供列名的存储过程调用定义 JPA SqlResultSetMapping?
- math - 线性回归 2 个因变量
- bash - 我需要通过 gitlab-ci 中的 ssh 将一个环境变量传递给 docker
- python - python REPL:仅显示完成选择的相关部分
- angular - 如何使用 AngularFire 从 FireBase 存储中获取文件列表
- c++ - Pybind11:如何为结构成员变量分配默认值?
- python - Kivy:如何检查拖动行为项的位置
- .htaccess - 404 - 文件未找到控制器或其方法未找到:\App\Controllers\Ivy::codeignitor