RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
pythoniat函数 python__lt__函数

python里setvalue()的用法

Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统。Pandas是其中的一种,使导入和分析数据更加容易。Pandasdataframe.set_value()函数将单个值放在传递的列和索引处。它以轴标签为输入,并以标量值放置在 DataFrame 中的指定索引处。替代此功能的是.at[]或者.iat[]。用法:DataFrame.set_value(index, col, value, takeable=False)

创新互联公司主营镶黄网站建设的网络公司,主营网站建设方案,成都App制作,镶黄h5小程序设计搭建,镶黄网站营销推广欢迎镶黄等地区企业咨询

Python 数据处理(二十四)—— 索引和选择

如果你想获取 'A' 列的第 0 和第 2 个元素,你可以这样做:

这也可以用 .iloc 获取,通过使用位置索引来选择内容

可以使用 .get_indexer 获取多个索引:

警告 :

对于包含一个或多个缺失标签的列表,使用 .loc 或 [] 将不再重新索引,而是使用 .reindex

在以前的版本中,只要索引列表中存在至少一个有效标签,就可以使用 .loc[list-of-labels]

但是现在,只要索引列表中存在缺失的标签将引发 KeyError 。推荐的替代方法是使用 .reindex() 。

例如

索引列表的标签都存在

先前的版本

但是,现在

索引标签列表中包含不存在的标签,使用 reindex

另外,如果你只想选择有效的键,可以使用下面的方法,同时保留了数据的 dtype

对于 .reindex() ,如果有重复的索引将会引发异常

通常,您可以将所需的标签与当前轴做交集,然后重新索引

但是,如果你的索引结果包含重复标签,还是会引发异常

使用 sample() 方法可以从 Series 或 DataFrame 中随机选择行或列。

该方法默认会对行进行采样,并接受一个特定的行数、列数,或数据子集。

默认情况下, sample 每行最多返回一次,但也可以使用 replace 参数进行替换采样

默认情况下,每一行被选中的概率相等,但是如果你想让每一行有不同的概率,你可以为 sample 函数的 weights 参数设置抽样权值

这些权重可以是一个列表、一个 NumPy 数组或一个 Series ,但它们的长度必须与你要抽样的对象相同。

缺失的值将被视为权重为零,并且不允许使用 inf 值。如果权重之和不等于 1 ,则将所有权重除以权重之和,将其重新归一化。例如

当应用于 DataFrame 时,您可以通过简单地将列名作为字符串传递给 weights 作为采样权重(前提是您要采样的是行而不是列)。

sample 还允许用户使用 axis 参数对列进行抽样。

最后,我们还可以使用 random_state 参数为 sample 的随机数生成器设置一个种子,它将接受一个整数(作为种子)或一个 NumPy RandomState 对象

当为该轴设置一个不存在的键时, .loc/[] 操作可以执行放大

在 Series 的情况下,这实际上是一个追加操作

可以通过 .loc 在任一轴上放大 DataFrame

这就像 DataFrame 的 append 操作

由于用 [] 做索引必须处理很多情况(单标签访问、分片、布尔索引等),所以需要一些开销来搞清楚你的意图

如果你只想访问一个标量值,最快的方法是使用 at 和 iat 方法,这两个方法在所有的数据结构上都实现了

与 loc 类似, at 提供了基于标签的标量查找,而 iat 提供了基于整数的查找,与 iloc 类似

同时,你也可以根据这些索引进行设置值

如果索引标签不存在,会放大数据

另一种常见的操作是使用布尔向量来过滤数据。运算符包括:

|(or) 、 (and) 、 ~ (not)

这些必须用括号来分组,因为默认情况下, Python 会将 df['A'] 2 df['B'] 3 这样的表达式评估为 df['A'] (2 df['B']) 3 ,而理想的执行顺序是 (df['A'] 2) (df['B'] 3)

使用一个布尔向量来索引一个 Series ,其工作原理和 NumPy ndarray 一样。

您可以使用一个与 DataFrame 的索引长度相同的布尔向量从 DataFrame 中选择行

列表推导式和 Series 的 map 函数可用于产生更复杂的标准

我们可以使用布尔向量结合其他索引表达式,在多个轴上索引

iloc 支持两种布尔索引。如果索引器是一个布尔值 Series ,就会引发异常。

例如,在下面的例子中, df.iloc[s.values, 1] 是正确的。但是 df.iloc[s,1] 会引发 ValueError 。

python对csv年龄一列划分范围改

python对csv年龄一列划分范围改

(1)单条件筛选

df[df[‘a’]30]

如果想筛选 a 列的取值大于 30 的记录, 但是之显示满足条件的 b,c 列的值可以这么写

df’b’,’c’[df[‘a’]30]

使用 isin 函数根据特定值筛选记录。筛选 a 值等于 30 或者 54 的记录

df[df.a.isin([30, 54])]

(2)多条件筛选

可以使用 (并)与 | (或)操作符或者特定的函数实现多条件筛选

使用 筛选 a 列的取值大于 30,b 列的取值大于 40 的记录

df[(df[‘a’] 30) (df[‘b’] 40)]

(3)索引筛选

a. 切片操作

df[行索引,列索引] 或 df列名 1,列名 2

#使用切片操作选择特定的行

df[1:4]

#传入列名选择特定的列

df’a’,’c’

b. loc 函数

当每列已有 column name 时,用 df [‘a’] 就能选取出一整列数据。如果你知道 column names 和 index,且两者都很好输入,可以选择 .loc 同时进行行列选择。

In [28]: df.loc[0,‘c’]

Out[28]: 4

In [29]: df.loc[1:4,[‘a’,‘c’]]

Out[29]:

a c

1 6 10

2 12 16

3 18 22

4 24 28

In [30]: df.loc[[1,3,5],[‘a’,‘c’]]

Out[30]:

a c

1 6 10

3 18 22

5 30 34

c. iloc 函数

如果 column name 太长,输入不方便,或者 index 是一列时间序列,更不好输入,那就可以选择 .iloc 了,该方法接受列名的 index,iloc 使得我们可以对 column 使用 slice(切片)的方法对数据进行选取。这边的 i 我觉得代表 index,比较好记点。

In [35]: df.iloc[0,2]

Out[35]: 4

In [34]: df.iloc[1:4,[0,2]]

Out[34]:

a c

1 6 10

2 12 16

3 18 22

In [36]: df.iloc[[1,3,5],[0,2]]

Out[36]:

a c

1 6 10

3 18 22

5 30 34

In [38]: df.iloc[[1,3,5],0:2]

Out[38]:

a b

1 6 8

3 18 20

5 30 32

d. ix 函数

ix 的功能更加强大,参数既可以是索引,也可以是名称,相当于,loc 和 iloc 的合体。需要注意的是在使用的时候需要统一,在行选择时同时出现索引和名称, 同样在同行选择时同时出现索引和名称。

df.ix[1:3,[‘a’,‘b’]]

Out[41]:

a b

1 6 8

2 12 14

3 18 20

In [42]: df.ix[[1,3,5],[‘a’,‘b’]]

Out[42]:

a b

1 6 8

3 18 20

5 30 32

In [45]: df.ix[[1,3,5],[0,2]]

Out[45]:

a c

1 6 10

3 18 22

5 30 34

e. at 函数

根据指定行 index 及列 label,快速定位 DataFrame 的元素,选择列时仅支持列名。

In [46]: df.at[3,‘a’]

Out[46]: 18

f. iat 函数

与 at 的功能相同,只使用索引参数

In [49]: df.iat[3,0]

Out[49]: 18

python筛选csv数据年龄在1-100的范围内

点赞文章给优秀博主打call~

便携平板价格

精选推荐

广告

请教python高手?

题主你好,

pandas在使用read_excel读取excel时, read_excel函数有一个dtype参数, 可以设置读取列的类型, 举例来说:

我的excel名为hello.xls, 其中age列需要作为int型处理,则:

pd = pandas.read_excel('hello.xls', dtype={'age':np.int32})

*.因为类型使用了numpy库, 如果上面语句提示np没找到,你还需要先执行一下:

import numpy as np

希望可以帮到题主, 欢迎追问


文章名称:pythoniat函数 python__lt__函数
文章源于:http://scyingshan.cn/article/dogoepg.html