DataFrame.query(expr, inplace=False, **kwargs)
参数
expr:引用字符串形式的表达式以过滤数据。
inplace:如果该值为True, 它将在原始DataFrame中进行更改。
- 获得a列中值为1的行
data.query('a==1')
- 获得a列中值为1或2的行
data.query('a==1 | a==2')
- 获得a列中值大于1、小于2的行
data.query('2>a>1')
获得a列中值为1的行data[data['a'].isin([1])]获得a列中值为1或2的行data[data['a'].isin([1,2])]获得a列中值大于1、小于2的行data[(data['a']<2)&(data['a']>1)]
prd_info.ix[prd_info['keyword'] == 'a',['title']]
prd_info[prd_info['keyword'] == 'a']['title']
但是下面这种写法是不对的,应该用ix
prd_info[prd_info['keyword'] == 'a',['title']] #错误写法
下面两句效果一样,输出符合条件样本的所有列
prd_info.ix[prd_info['keyword'] ==
import pandas as pd
data = {'state':['Ohio','Ohio','Merry','Nevaio','Nevada'],
'year':[2000,2001,2002,2001,2002],
'pop':[1.5,1.7,3.6,2.4,2.9]
frame = pd.DataFrame(data,columns=['year','stat...
Python Pandas中Dataframe对象,如何根据列值筛选满足条件的行,并且返回列的索引值,我们举栗子说明一下:
1.先创建一个dataframe变量df:
df = pd.DataFrame(np.arange(16).reshape(4,4),
#index = pd.date_range('20200301', periods=4),
index = list('hjkl'),
columns = list('ABCD'))
df =df.append(df)
df的样子如下
import numpy as np
df = pd.DataFrame({'code': '000001.SZ 000002.SZ 000006.SZ 000009.SZ'.split(),
'open': '1.2 20 3.5 2.8'.split
1.
dataframe遍历或迭代
list1=[['B1','2019-12-01',3], ['B2','2019-12-01',8],['A1','2019-12-02',4],['A2','2019-12-09',5]]
data=pd.
DataFrame(list1,columns=('asin','date','qty'))
(1)按
行遍历iterrows()
iterrows() 按
行遍历,返回(index, Series)对,通过row[name]访问元素
我遇到的一个小需求,就是希望通过判断pandas dataframe中一列的值在两个条件范围(比如下面代码中所描述的逻辑,取小于u-3ε和大于u+3ε的值),然后取出dataframe中的所有符合条件的值,这个需求的解决与普通的iloc、loc、ix的方式不同,所以我想分享一下,希望可以帮到遇到这个困难的朋友们,下面是我的实例代码:
doc[~((doc.iloc[:,141:142]<(mean_value-3*std_value))&(doc.iloc[:,141:142]>(mean_value+3*std_value)))]
下面代码是去掉两端数据,保留中间数据
doc = doc
Python中的DataFrame可以使用条件筛选来选择特定的行或列。可以使用布尔运算符(如>,<,==,!=等)和逻辑运算符(如&,|,~等)来构建筛选条件,然后将其传递给DataFrame的loc或iloc方法。例如,以下代码将选择DataFrame中“age”列大于30的所有行:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
df_filtered = df.loc[df['age'] > 30]
print(df_filtered)
name age gender
2 Charlie 35 M
3 David 40 M
在这个例子中,我们使用了loc方法和布尔条件df['age'] > 30来选择DataFrame中所有年龄大于30的行。我们将结果存储在df_filtered中,并打印出来。