3.pandas赋值及操作

import pandas as pd
import numpy as np
dates = np.arange(20170101,20170107)  #取值
df1 = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates,columns=['A','B','C','D'])
df1
ABCD
201701010123
201701024567
20170103891011
2017010412131415
2017010516171819
2017010620212223
df1.iloc[2,2]   #第三行第三列的数据
10
df1.iloc[2,2] = 100   #对第二行第二列赋值
df1
ABCD
201701010123
201701024567
201701038910011
2017010412131415
2017010516171819
2017010620212223
df1.loc[20170102,'B'] = 200  #对20170102这行的B进行赋值
df1
ABCD
201701010123
20170102420067
201701038910011
2017010412131415
2017010516171819
2017010620212223
df1[df1.A>10] = 0   #将A列中大于10的数据都赋值为0
df1
ABCD
201701010123
20170102420067
201701038910011
201701040000
201701050000
201701060000
df1.A[df1.A==0] = 1   #将A列中等于0的行都赋值为1
df1
ABCD
201701011123
20170102420067
201701038910011
201701041000
201701051000
201701061000
df1['E'] = 10 #添加一列
df1
ABCDE
20170101112310
2017010242006710
20170103891001110
20170104100010
20170105100010
20170106100010
df1['F'] = pd.Series([1,2,3,4,5,6],index=dates)#添加一列
df1
ABCDEF
201701011123101
20170102420067102
201701038910011103
201701041000104
201701051000105
201701061000106
df1.loc[20170107,['A','B','C']] = [1,2,3] #添加一行 只对三列赋值,未赋值的列显示未NAN
df1
ABCDEF
201701011.01.02.03.010.01.0
201701024.0200.06.07.010.02.0
201701038.09.0100.011.010.03.0
201701041.00.00.00.010.04.0
201701051.00.00.00.010.05.0
201701061.00.00.00.010.06.0
201701071.02.03.0NaNNaNNaN
s1 = pd.Series([1,2,3,4,5,6],index=['A','B','C','D','E','F'])
s1.name = 'S1'
df2 = df1.append(s1)  #追加一行
df2
ABCDEF
201701011.01.02.03.010.01.0
201701024.0200.06.07.010.02.0
201701038.09.0100.011.010.03.0
201701041.00.00.00.010.04.0
201701051.00.00.00.010.05.0
201701061.00.00.00.010.06.0
201701071.02.03.0NaNNaNNaN
S11.02.03.04.05.06.0
df1.insert(1,'G',df2['E']) #在第一列插入索引为G的列,列中的值是df2中的E列的值
df1
AGBCDEF
201701011.010.01.02.03.010.01.0
201701024.010.0200.06.07.010.02.0
201701038.010.09.0100.011.010.03.0
201701041.010.00.00.00.010.04.0
201701051.010.00.00.00.010.05.0
201701061.010.00.00.00.010.06.0
201701071.0NaN2.03.0NaNNaNNaN
g = df1.pop('G')#弹出G列,命名为g
df1.insert(6,'G',g)#在第六行的位置插入,行名为G,内容为g的内容
df1
ABCDEFG
201701011.01.02.03.010.01.010.0
201701024.0200.06.07.010.02.010.0
201701038.09.0100.011.010.03.010.0
201701041.00.00.00.010.04.010.0
201701051.00.00.00.010.05.010.0
201701061.00.00.00.010.06.010.0
201701071.02.03.0NaNNaNNaNNaN
del df1['G']#删除G列
df1
ABCDEF
201701011.01.02.03.010.01.0
201701024.0200.06.07.010.02.0
201701038.09.0100.011.010.03.0
201701041.00.00.00.010.04.0
201701051.00.00.00.010.05.0
201701061.00.00.00.010.06.0
201701071.02.03.0NaNNaNNaN
df2 = df1.drop(['A','B'],axis=1)#删除AB列
df1
ABCDEF
201701011.01.02.03.010.01.0
201701024.0200.06.07.010.02.0
201701038.09.0100.011.010.03.0
201701041.00.00.00.010.04.0
201701051.00.00.00.010.05.0
201701061.00.00.00.010.06.0
201701071.02.03.0NaNNaNNaN
df2
CDEF
201701012.03.010.01.0
201701026.07.010.02.0
20170103100.011.010.03.0
201701040.00.010.04.0
201701050.00.010.05.0
201701060.00.010.06.0
201701073.0NaNNaNNaN
df2 = df1.drop([20170101,20170102],axis=0)#删除20170101,20170102行
df1
ABCDEF
201701011.01.02.03.010.01.0
201701024.0200.06.07.010.02.0
201701038.09.0100.011.010.03.0
201701041.00.00.00.010.04.0
201701051.00.00.00.010.05.0
201701061.00.00.00.010.06.0
201701071.02.03.0NaNNaNNaN
df2
ABCDEF
201701038.09.0100.011.010.03.0
201701041.00.00.00.010.04.0
201701051.00.00.00.010.05.0
201701061.00.00.00.010.06.0
201701071.02.03.0NaNNaNNaN
# drop可以删除列,删除行
# del只可以删除列
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值