Pandas資料處理 替換列中的值

2021-10-08 09:54:16 字數 2924 閱讀 2019

在我們處理資料時,需要設定啞變數或者將連續值按照某個標準劃分為幾類,例如將性別中的男,女替換為0和1,將bmi值劃分為偏瘦、正常、偏胖和肥胖四類

資料集

#data

import pandas as pd

dict_data =

df = pd.dataframe(dict_data)

print

(df)

#data_result

id_card *** bmi

0111 f 31.0

1222 m 17.5

2333 m 24.5

3444 f 23.0

4555 m 18.8

5666 f 26.0

6777 f 30.0

7888 f 25.0

#python新版本 dataframe移除了 .ix

df.loc[df[

'***']==

'f',

'***']=

0df.loc[df[

'***']==

'm',

'***']=

1print

(df)

#result

id_card *** bmi

0111

031.0

1222

117.5

2333

124.5

3444

023.0

4555

118.8

5666

026.0

6777

030.0

7888

025.0

* map對映方法
# ways-1 字典

# df['***'] = df['***'].map()

# ways-2 函式

df['***'

]= df[

'***'].

map(

lambda x:

0if x ==

'f'else1)

# result

id_card *** bmi

0111

031.0

1222

117.5

2333

124.5

3444

023.0

4555

118.8

5666

026.0

6777

030.0

7888

025.0

分類

bmi(kg/m2)

偏瘦<18.5

正常18.5~24

偏胖24~28肥胖≥

\geq

≥ 28

keys:利用布林型索引或者利用.index.to_list()拿出對應的行索引

#布林型索引

pan_1 = df[

'bmi'

]<

18.5

pan_2 =

(df[

'bmi'

]>=

18.5)&

(df[

'bmi'

]<24)

pan_3 =

(df[

'bmi'

]>=24)

&(df[

'bmi'

]<28)

pan_4 = df[

'bmi'

]>=

28df.loc[pan_1,

'bmi']=

'偏瘦'

df.loc[pan_2,

'bmi']=

'正常'

df.loc[pan_3,

'bmi']=

'偏胖'

df.loc[pan_4,

'bmi']=

'肥胖'

#.index.to_list()

pan_1 = df[df[

'bmi'

]<

18.5

].index.to_list(

)pan_2 = df[

(df[

'bmi'

]>=

18.5)&

(df[

'bmi'

]<24)

].index.to_list(

)pan_3 = df[

(df[

'bmi'

]>=24)

&(df[

'bmi'

]<28)

].index.to_list(

)pan_4 = df[df[

'bmi'

]>=28]

.index.to_list(

)df.loc[pan_1,

'bmi']=

'偏瘦'

df.loc[pan_2,

'bmi']=

'正常'

df.loc[pan_3,

'bmi']=

'偏胖'

df.loc[pan_4,

'bmi']=

'肥胖'

#result

print

(df)

id_card *** bmi

0111

0 肥胖

1222

1 偏瘦

2333

1 偏胖

3444

0 正常

4555

1 正常

5666

0 偏胖

6777

0 肥胖

7888

0 偏胖

pandas 資料處理

pandas中資料可以分為series,dataframe,panel分別表示一維至三維資料。其中在構造時,index表示行名,columns表示列名 構造方式 s pd.series data index index s pd series np random randn 5 index a b ...

pandas資料處理

dataframe.duplicated subset none,keep first 判斷dataframe中的資料是否有重複 必須一行中所有資料都重複才算重複,只能判斷行,不能判斷列 返回series dataframe.drop duplicates subset none,keep firs...

Pandas資料處理

資料處理 pandas from sklearn.preprocessing import minmaxscaler data 1,2 0.5,6 0.10 1,18 將 numpy 轉換成 pd 表 pd.dataframe data 歸一化 0,1 之間 scaler minmaxscaler ...