前言
做数据分析的时候通常我们并不是对真个excel文件进行操作,换言之,每一列都是一个特征,我们需要针对分析。遇到这类问题的时候,我们通常想得到一列中所有符合条件的数据,挑出来,然后组成一个单独的文件进行分析。比如一列中我们希望找到所有大于100的所有行,又比如 我们希望得到一列中包含某个特定字母的所有行,那么我们应该怎么办呢,这里就说一下。
在这之前我们先介绍一个pandas里面一个函数 loc()
英文解释是这样的:Purely label-location based indexer for selection by label.
.loc[] is primarily label based, but may also be used with a boolean array.
最通俗的讲就是标签索引器
了解了这个函数(具体用法下面两个例子就可以懂),我们可两个例子 就可以选择我们想要的行了
问题一:我们想要“behavior_type”列中所有为3或4的行
import pandas as pd import numpy as np import csv for df in pd.read_csv(open(r'C:\Users\yang\Desktop\useer.csv','r'),chunksize=10000): print(df.loc[df['behavior_type']>1,:])
从这个程序我们可以得出 .loc() 前面是我们的整个索引目标,括号中为索引标签(我们回到loc英文解释第二局话,可以索引布尔型) ,那么这么简单一句话就可以把所以为3,4的行输出了.后面的冒号代表从开始到最后索引
print(df.loc[df['behavior_type'].isin([3,4]),:])
注意 这里的isin([ ])有小括号 也有中括号集合的形式。
我们也可以利用isin代替大于号性质是一样的,该标签下所有为3,4的集合的布尔型 然后再索引
print(df[df['behavior_type'].isin([3,4])])
提到isin 我们想到了一个更为简单的方法,直接索引即可
问题一:我们想要“user_geohash”列中所有含有字母‘qo'的行
print(df.loc[df['user_geohash'].str.contains('qo')])
是不是已经想到了 利用loc就可以了,只要后面加上字符串str.contains()函数即可。
那么到这里所有的问题迎刃而解,那么我们想要索取特定行呢 我们想要索取特定列呢
没问题 让我们继续深入了解loc函数
df是一个dataframe,列名为A B C D
具体值如下:
A B C D
0 ss 小红 8
1 aa 小明 d
4 f f
6 ak 小紫 7
dataframe里的属性是不定的,空值默认为NA。
一、选取标签为A和C的列,并且选完类型还是dataframe
df = df.loc[:, ['A', 'C']] df = df.iloc[:, [0, 2]]
二、选取标签为C并且只取前两行,选完类型还是dataframe
df = df.loc[0:2, ['A', 'C']] df = df.iloc[0:2, [0, 2]]
聪明的你发现loc的用法了吗?
总结
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 柏菲·珞叔作品集《金色大厅2》限量开盘母带ORMCD[低速原抓WAV+CUE]
- Gareth.T《sad songs(Explicit)》[320K/MP3][29.03MB]
- Gareth.T《sad songs(Explicit)》[FLAC/分轨][152.85MB]
- 证声音乐图书馆《海风摇曳·盛夏爵士曲》[320K/MP3][63.06MB]
- 龚玥《金装龚玥HQCD》头版限量[WAV分轨]
- 李小春《吻别》萨克斯演奏经典[原抓WAV+CUE]
- 齐秦《辉煌30年24K珍藏版》2CD[WAV+CUE]
- 证声音乐图书馆《海风摇曳·盛夏爵士曲》[FLAC/分轨][321.47MB]
- 群星 《世界经典汽车音乐》 [WAV分轨][1G]
- 冷漠.2011 《冷漠的爱DSD》[WAV+CUE][1.2G]
- 陈明《流金岁月精逊【中唱】【WAV+CUE】
- 群星《Jazz-Ladies1-2爵士女伶1-2》HQCD/2CD[原抓WAV+CUE]
- 群星《美女私房歌》(黑胶)[WAV分轨]
- 郑源.2009《试音天碟》24BIT-96KHZ[WAV+CUE][1.2G]
- 飞利浦试音碟 《环球群星监听录》SACD香港版[WAV+CUE][1.1G]