Pandas给dataframe中某一行的某一个特定位置赋值loc iloc ix

pandas从dataframe中获取值可以用:

import numpy as np
from pandas import Series, DataFrame

import pandas as pd

df = DataFrame({'CST_NO': [11, 22, 11, 22, 11, 22],
                'AMOUNT': [10, 20, 30, np.nan, 1000, 2000],
                'START_TIME':['2016-08-21 17:15:15','2016-08-21 22:22:22',
                             '2016-08-22 16:16:16','2016-08-22 20:23:23',
                              '2016-08-23 15:12:12','2016-08-23 13:12:12'],
                'CLIENT_IP':['192.1', '192.2', '192.1', '192.3', '192.2','192.3'],
                'CLIENT_MAC':['ios', 'win', 'win', 'ios', 'ios','win'],
                'TO':['WEI', 'BAI', 'WEI', 'ZHU', 'WANG','ZHU'],
                })
a1 = df.iloc[0]["AMOUNT"]
a2 = df.iloc[0][1]
b1 = df.loc[1]['CST_NO']
b2 = df.loc[1, 'CST_NO']
print(a, aa)

结果:
10.0 10.0
22 22

pandas给dataframe中某一位置赋值:

df.iloc[0]["AMOUNT"] = "________"
print(df)

df.iloc[0][2] = "~~~~~~"
print(df)

df.loc[1]['CST_NO'] = "+++++++++++"
print(df)

df.loc[2,'CST_NO'] = "||||||||||"
print(df)

只有第四个成功被修改替换,其他三个都没有使df发生改变。

注:dataframe某一特定位置赋值,只能用df.loc[ROW_INT,COL_NAME]*

------------------------------------分割线----------------------------------------

iloc,loc,ix(现在已经被废弃)的区别:

.loc 的使用

.loc[],中括号里面是先行后列,以逗号分割,行和列分别是行标签和列标签,比如我要得到数字5,那么就就是:

data.loc[“b”,“B”]

.iloc

.iloc[]与loc一样,中括号里面也是先行后列,行列标签用逗号分割,与loc不同的之处是,.iloc 是根据行数与列数来索引的,不能用列名称进行索引

data.iloc[1:3,1:3]

.ix

.ix我发现,上面两种用法他都可以,它既可以根据行列标签又可以根据行列数

data.ix[1,1]
data.ix[“b”,“B”]

在pandas的1.0.0版本开始,移除了Series.ix and DataFrame.ix 方法。

可以用df.loc[]代替

参考博客:点击跳转1点击跳转2

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值