python - 根据其他列值在列值中添加整数
问题描述
我有一列TS
从 -60 到 60 不等,我有一列 V
从 -0.1 到 0 到 1 并且一次又一次地重复。我想将 15 添加到TS
when 变量的值V<0
,减去 15 when V>0
。TS
和中的值采用V
float64 格式。其中也有一些nan
值,TS
因此可以将它们替换为我在这里所做的零。我试过这个,但后来我不知道该怎么做。
data = pd.read_table(filename,skiprows=104,decimal=',', sep=';',header=None,names=["V ","TS "])
``
import numpy as np
TS = data[data.keys()[9]]
TS = np.array(TS)
np.nan_to_num(TS)
TS4 = TS[V<0]+15
TS5 = TS[V>0]-15
TS6 = TS[V==0]
TS7 = TS[np.isnan(TS)] = 0
在哪里
+-------+--------------------+--------------------+------------+
| Index | TS (kPa) | NS(kPa) | V (mm/min) |
+-------+--------------------+--------------------+------------+
| 0 | 36.052101 | 97.384283 | -0.1 |
| 1 | 20.240409 | 102.012401 | -0.1 |
| 2 | 10.491882 | 97.26910600000001 | -0.1 |
| 3 | 8.717836 | 101.145252 | -0.1 |
| 4 | 3.7307309999999996 | 99.038843 | -0.1 |
| 5 | 3.585318 | 99.413168 | 0.1 |
| 6 | 3.6144 | 100.562722 | 0.1 |
| 7 | 2.676773 | 100.13413100000001 | 0.1 |
| 8 | -4.776546 | 97.868247 | 0.1 |
+-------+--------------------+--------------------+------------+
预期产出
+-------+--------------------+--------------------+------------+
| Index | TS (kPa) | NS(kPa) | V (mm/min) |
+-------+--------------------+--------------------+------------+
| 0 | 51.052101 | 97.384283 | -0.1 |
| 1 | 35.240409 | 102.012401 | -0.1 |
| 2 | 25.491882 | 97.26910600000001 | -0.1 |
| 3 | 23.717836 | 101.145252 | -0.1 |
| 4 | 18.7307309999999996 | 99.038843 | -0.1 |
| 5 | -12.585318 | 99.413168 | 0.1 |
| 6 | -12.6144 | 100.562722 | 0.1 |
| 7 | -14.676773 | 100.13413100000001 | 0.1 |
| 8 | -19.776546 | 97.868247 | 0.1 |
+-------+--------------------+--------------------+------------+
解决方案
使用后从 TSnp.where
更换。NaN
输入数据:
>>> df
TS NS V
0 36.052101 97.384283 -0.1
1 20.240409 102.012401 -0.1
2 10.491882 97.269106 -0.1
3 8.717836 101.145252 -0.1
4 3.730731 99.038843 -0.1
5 3.585318 99.413168 0.1
6 3.614400 100.562722 0.1
7 2.676773 100.134131 0.1
8 -4.776546 97.868247 0.1
9 NaN 99.313814 0.1
df['TS'] = np.where(df['V'] < 0, df['TS'] + 15, df['TS'] - 15)
df['TS'] = df['TS'].fillna(0)
输出结果:
>>> df
TS NS V
0 51.052101 97.384283 -0.1
1 35.240409 102.012401 -0.1
2 25.491882 97.269106 -0.1
3 23.717836 101.145252 -0.1
4 18.730731 99.038843 -0.1
5 -11.414682 99.413168 0.1
6 -11.385600 100.562722 0.1
7 -12.323227 100.134131 0.1
8 -19.776546 97.868247 0.1
0 0.000000 99.313814 0.1
推荐阅读
- bash - Gitlab CI/CD:将作业环境变量传递给 shell 脚本
- python - Python Pandas 数据框 - 根据索引值添加新列
- vb.net - web.config:如何读取整数值?
- python - Python Pandas to_datetime 返回 NaT
- selenium-extent-report - Selenium 自动化 - 范围报告未使用相对路径获取图像
- c# - Array.Sort 在 for{} 循环中无法正常工作
- reactjs - 使用 react 钩子 useContext 渲染具有不同标题的组件
- oracle - 如何查询存储在数字字段中的 GUID
- antlr - 如何将 Antlr3 转换为 Antlr4?
- python - 如何在不使用 Postgres 的 ARRAY 功能的情况下在 SQLAlchemy 中创建简单整数列表的属性