编程语言
首页 > 编程语言> > python – 按值内部过滤列并获取索引

python – 按值内部过滤列并获取索引

作者:互联网

我想用其值大于或等于1的列来获取其他数据框填充.

df = pd.DataFrame({'A': '0 1 0 0 1 2'.split(),
               'B': '0.1 0.2 0 0.5 0 0.1'.split(),'C':'0.1 0.2 0 0.5 0 0.1'.split()})

   A    B    C
0  0  0.1  0.1
1  1  0.2  0.2
2  0    0    0
3  0  0.5  0.5
4  1    0    0
5  2  0.1  0.1

例如,我想得到像这样的df2:

df2 = pd.DataFrame({'A': '0 1 0 0 1 2'.split()})

如果我尝试df2 = df2 [df2.values.astype(float)> = 1]我保留我的三列

解决方法:

我创建了一个布尔掩码,其中列中的至少一些值是> = 1.然后我在数据和列上使用此掩码来生成新的数据帧.

我利用numpy掩盖.

# convert to floats and define mask
v = df.values.astype(float)
mask = (v >= 1).any(0)

# assign new dataframe with masked data and masked columns
# just incase there where multiple columns that satisfied.
df2 = pd.DataFrame(v.T[mask].T, columns=df.columns[mask])
df2

enter image description here

定时

enter image description here

df 1000倍

df = pd.concat([df.T for _ in range(1000)], ignore_index=True).T

enter image description here

标签:python,pandas,dataframe,filter,multiple-columns
来源: https://codeday.me/bug/20190828/1756768.html