Python 数据集2列最小值和最大值确定列
我有一个像这样的数据帧dtPython 数据集2列最小值和最大值确定列,python,pandas,Python,Pandas,我有一个像这样的数据帧dt minV maxV 2008-01-02 NaN NaN 2008-01-03 NaN NaN 2008-01-04 37.33 NaN 2008-01-07 NaN 37.71 2008-01-08 36.21 NaN 2008-01-09 NaN NaN 2008-01-10 NaN 37.70 在每一行上,我可以有一个minV或maxV 在同一天,minV和max
minV maxV
2008-01-02 NaN NaN
2008-01-03 NaN NaN
2008-01-04 37.33 NaN
2008-01-07 NaN 37.71
2008-01-08 36.21 NaN
2008-01-09 NaN NaN
2008-01-10 NaN 37.70
在每一行上,我可以有一个minV或maxV
在同一天,minV和maxV的值不能都不是NaN。(不可能2008-01-08 36.21 37.71
)
我想创建另一个数据帧,其中仅在具有minV或maxV not NaN的日期:
- 如果是minV的一天-->1000
- 如果这是maxV的一天那么-->-1000 比如:
1000是一个常数您可以将
dropna
与all
一起使用,以去除任何完全为空的行,然后使用np.where
有条件地填充您的值
import numpy as np
df = df.dropna(how='all')
df['val'] = np.where(df['minV'].isnull(), -1000,1000)
print(df[['val']])
输出
val
2008-01-04 1000
2008-01-07 -1000
2008-01-08 1000
2008-01-10 -1000
您可以将
dropna
与all
一起使用,以去除任何完全为空的行,然后使用np.where
有条件地填充值
import numpy as np
df = df.dropna(how='all')
df['val'] = np.where(df['minV'].isnull(), -1000,1000)
print(df[['val']])
输出
val
2008-01-04 1000
2008-01-07 -1000
2008-01-08 1000
2008-01-10 -1000