美文网首页
pandas dataframe 赋值操作2

pandas dataframe 赋值操作2

作者: 筝韵徽 | 来源:发表于2019-01-13 16:41 被阅读92次
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
  • 修改所有的bonus为10000
    • 方式1:
df['bonus']=10000
df
image.png
- 方式2:
df.loc[:,'bonus']=9999
df
image.png
  • 修改YEARS EXPERIENCE数据类型
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
  • 使用iloc 赋值
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


相关文章

网友评论

      本文标题:pandas dataframe 赋值操作2

      本文链接:https://www.haomeiwen.com/subject/erhldqtx.html