with numpy where:对于黑色单元格,将新值放入列中
with numpy where: for black cell, putting new value in a column
我正在 csv 文件中使用 numpy。
我有 3 列。对于 'PUMA' 列中的 500 值,我想将 5 放入 'HTYPE' 列中。它适用于以下代码。但是对于 'PUMA' 列(第 3 行)中的黑色单元格(nan),我想将 '-999' 放在 'HTYPE' 列中。使用相同的代码,它不起作用。
如果另一列中有nan,如何将值放入列中,使用np.where?
import pandas as pd, numpy as np
df= pd.read_csv(input_folder + input_file )
df['HTYPE'] = np.where(df['PUMA']==500, 5, df['HTYPE'] )
df['HTYPE'] = np.where(df['PUMA']==np.NaN, -999, df['HTYPE'] )
df.to_csv('output.csv', index=False)
需要特殊功能 isna
来检查 NaN
s 值:
df['HTYPE'] = np.where(df['PUMA'].isna(), -999, df['HTYPE'] )
#for oldier versions of pandas
#df['HTYPE'] = np.where(df['PUMA'].isnull(), -999, df['HTYPE'] )
因为 design:
np.nan == np.nan
False
也可以使用双 np.where
numpy.select
:
df = pd.DataFrame({'PUMA':[500,3302, np.nan, 9503],
'WGTP':[21,0,6,6],
'HTYPE':[20,0,0,0]})
print (df)
PUMA WGTP HTYPE
0 500.0 21 20
1 3302.0 0 0
2 NaN 6 0
3 9503.0 6 0
df['HTYPE'] = np.select([df['PUMA']==500, df['PUMA'].isna()],
[5, -999],
default=df['HTYPE'] )
print (df)
PUMA WGTP HTYPE
0 500.0 21 5
1 3302.0 0 0
2 NaN 6 -999
3 9503.0 6 0
我正在 csv 文件中使用 numpy。
我有 3 列。对于 'PUMA' 列中的 500 值,我想将 5 放入 'HTYPE' 列中。它适用于以下代码。但是对于 'PUMA' 列(第 3 行)中的黑色单元格(nan),我想将 '-999' 放在 'HTYPE' 列中。使用相同的代码,它不起作用。
如果另一列中有nan,如何将值放入列中,使用np.where?
import pandas as pd, numpy as np
df= pd.read_csv(input_folder + input_file )
df['HTYPE'] = np.where(df['PUMA']==500, 5, df['HTYPE'] )
df['HTYPE'] = np.where(df['PUMA']==np.NaN, -999, df['HTYPE'] )
df.to_csv('output.csv', index=False)
需要特殊功能 isna
来检查 NaN
s 值:
df['HTYPE'] = np.where(df['PUMA'].isna(), -999, df['HTYPE'] )
#for oldier versions of pandas
#df['HTYPE'] = np.where(df['PUMA'].isnull(), -999, df['HTYPE'] )
因为 design:
np.nan == np.nan
False
也可以使用双 np.where
numpy.select
:
df = pd.DataFrame({'PUMA':[500,3302, np.nan, 9503],
'WGTP':[21,0,6,6],
'HTYPE':[20,0,0,0]})
print (df)
PUMA WGTP HTYPE
0 500.0 21 20
1 3302.0 0 0
2 NaN 6 0
3 9503.0 6 0
df['HTYPE'] = np.select([df['PUMA']==500, df['PUMA'].isna()],
[5, -999],
default=df['HTYPE'] )
print (df)
PUMA WGTP HTYPE
0 500.0 21 5
1 3302.0 0 0
2 NaN 6 -999
3 9503.0 6 0