我有一个很大的数据集。我正在尝试用Pandas Dataframe来读取它。我想从其中一列中分离出一些值。假设列名为"A",则取值范围为90到300。我想分隔270到280之间的任何值。我确实尝试了下面的代码,但它是错误的!
%matplotlib inline
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('....csv')
df2 = df[ 270 < df['A'] < 280]发布于 2017-05-28 23:12:37
在boolean indexing中使用between
df = pd.DataFrame({'A':range(90,300)})
df2 = df[df['A'].between(270,280, inclusive=False)]
print (df2)
A
181 271
182 272
183 273
184 274
185 275
186 276
187 277
188 278
189 279或者:
df2 = df[(df['A'] > 270) & (df['A'] < 280)]
print (df2)
A
181 271
182 272
183 273
184 274
185 275
186 276
187 277
188 278
189 279发布于 2017-05-28 23:21:24
使用numpy加速并重建新的数据帧。
假设我们使用jezrael的样本数据
a = df.A.values
m = (a > 270) & (a < 280)
pd.DataFrame(a[m], df.index[m], df.columns)
A
181 271
182 272
183 273
184 274
185 275
186 276
187 277
188 278
189 279发布于 2017-05-28 23:15:18
您也可以使用query()方法:
df2 = df.query("270 < A < 280")演示:
In [40]: df = pd.DataFrame({'A':range(90,300)})
In [41]: df.query("270 < A < 280")
Out[41]:
A
181 271
182 272
183 273
184 274
185 275
186 276
187 277
188 278
189 279https://stackoverflow.com/questions/44228817
复制相似问题