import pandas as pd
import numpy as np
pandas dataframe 赋值操作2
df = pd.read_csv('data/employee_sample.csv',index_col=0)
df

image.png
df['BONUS RATE'] = [.2, .1, .13, .15, .12, .3, .05]
df

image.png
- 根据salary 与bonusrate 计算bonus并且增加bonus列
df['bonus']=df['SALARY']*df['BONUS RATE']
df

image.png
df['bonus']=10000
df

image.png
- 方式2:
df.loc[:,'bonus']=9999
df

image.png
df['YEARS EXPERIENCE'].dtype
dtype('int64')
df['YEARS EXPERIENCE']=df['YEARS EXPERIENCE'].astype('object')
df['YEARS EXPERIENCE']
Tom 23
Niko 1
Penelope 12
Aria 8
Sofia 23
Dean 3
Zach 4
Name: YEARS EXPERIENCE, dtype: object
df['YEARS EXPERIENCE'].dtype
dtype('O')
+ 给bonus列的['Niko', 'Penelope', 'Aria'] 赋值
df.loc[['Niko', 'Penelope', 'Aria'],'bonus']=[2301,4563,6548]
df

image.png
df.iloc[3:6,3]=10
df

image.png
df.iloc[:,3]=33
df

image.png
+ 使用loc 筛选数据并修改其值
- 修改DEPARTMENT列中等于Engineering,对应的bonus值
df.loc[df['DEPARTMENT']=='Engineering','bonus']+=500
df

image.png
Series 赋值操作
s=df['SALARY'].copy()
s
Tom 107962
Niko 30347
Penelope 60258
Aria 43618
Sofia 26125
Dean 33592
Zach 37565
Name: SALARY, dtype: int64
s.loc[['Tom','Niko','Aria']]=[99,123,321]
s
Tom 99
Niko 123
Penelope 33
Aria 321
Sofia 26125
Dean 33592
Zach 37565
Name: SALARY, dtype: int64
s.iloc[1:3]=33
s
Tom 99
Niko 33
Penelope 33
Aria 99
Sofia 26125
Dean 33592
Zach 37565
Name: SALARY, dtype: int64
网友评论