1. 程式人生 > >python設定值及NaN值處理

python設定值及NaN值處理

python 設定值

import pandas as pd
import numpy as np
dates = pd.date_range('20180101',periods=6)
df = pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=['A','B','C','D'])
print(df)
             A   B   C   D
2018-01-01   0   1   2   3
2018-01-02   4   5   6   7
2018-01-03   8   9  10  11
2018-01-04  12  13  14  15
2018-01-05  16  17  18  19
2018-01-06  20  21  22  23
df.loc['20180102','A'] = 1111
print(df)
               A   B   C   D
2018-01-01     0   1   2   3
2018-01-02  1111   5   6   7
2018-01-03     8   9  10  11
2018-01-04    12  13  14  15
2018-01-05    16  17  18  19
2018-01-06    20  21  22  23
df.iloc[2,2] = 2222
print(df)
               A   B     C   D
2018-01-01     0   1     2   3
2018-01-02  1111   5     6   7
2018-01-03     8   9  2222  11
2018-01-04    12  13    14  15
2018-01-05    16  17    18  19
2018-01-06    20  21    22  23
df[df.A>12]=0  #修改df資料中符合條件的所有值
print(df)
             A   B     C   D
2018-01-01   0   1     2   3
2018-01-02   0   0     0   0
2018-01-03   8   9  2222  11
2018-01-04  12  13    14  15
2018-01-05   0   0     0   0
2018-01-06   0   0     0   0
df.A[df.A<4]=11 #修改df資料中A列符合條件的所有值
print(df)
             A   B     C   D
2018-01-01  11   1     2   3
2018-01-02  11   0     0   0
2018-01-03   8   9  2222  11
2018-01-04  12  13    14  15
2018-01-05  11   0     0   0
2018-01-06  11   0     0   0
df['F'] = np.nan
print(df)
             A   B     C   D   F
2018-01-01  11   1     2   3 NaN
2018-01-02  11   0     0   0 NaN
2018-01-03   8   9  2222  11 NaN
2018-01-04  12  13    14  15 NaN
2018-01-05  11   0     0   0 NaN
2018-01-06  11   0     0   0 NaN
print(np.any(df.isnull())== True)  #isnull檢測是否含有NaN值,有就返回True。np.any()檢測df資料中是否含有等於Ture的值
True

NaN值填充:print(df.fillna(value=0))