利⽤python3筛选excel中特定的⾏(⾏值满⾜某个条件⾏
值属于某个集合)
前⾔
做数据分析的时候通常我们并不是对真个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.
最通俗的讲就是标签索引器
了解了这个函数(具体⽤法下⾯两个例⼦就可以懂),我们可两个例⼦就可以选择我们想要的⾏了
python怎么读取excel某一列问题⼀:我们想要“behavior_type”列中所有为3或4的⾏
import pandas as pd
import numpy as np
import csv
for df ad_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'].ains('qo')])
是不是已经想到了利⽤loc就可以了,只要后⾯加上字符串ains()函数即可。
那么到这⾥所有的问题迎刃⽽解,那么我们想要索取特定⾏呢我们想要索取特定列呢
没问题让我们继续深⼊了解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的⽤法了吗?
总结
到此这篇关于利⽤python3筛选excel中特定的⾏(⾏值满⾜某个条件/⾏值属于某个集合)的⽂章就介绍到这了,更多相关python3筛选excel特定的⾏内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论