000012 000013 000014 ... 004004 005585 007682
0 0 3.8 3.7 ... 1.1 4.8 0.4
1 0 0 0.0 ... 0.0 5 7.8
2 0 0 0.0 ... 0.0 1.6 2.1
3 0 0 2.0 ... 2.3 0 0.4
4 0 0 1.3 ... 0.2 1.3 0.1
5 0 0 0.0 ... 0.0 4.1 3.5
6 0 0 0.0 ... 0.6 0.2 0.3
7 0 0 0.0 ... 0.0 0 7.1
8 0 0 0.0 ... 0.0 0 0.0
我有这样的东西。我需要比较每列的值,以了解每列中出现大于1的值的次数。
我试过这个:
s.set_index(s.index).gt(1).sum(1).reset_index(name='result').fillna(s)
但是它得到了一个错误:无法操作1,在"numpy.ndarray
"one_answers"int
"的实例之间不支持块值">
">
列的值是浮动的。
有人知道我解决了吗??谢谢
我不能给你确切的代码,因为你的表不清楚,但你可以尝试使用query()
:-
df_filtered = df.query('a > 1')
其中a
是要筛选的列的标题。
要添加多个条件,可以在每列之间使用&
df_filtered = df.query('a > 1 & b > 1')
请尝试以下代码:
import pandas as pd
import numpy as np
datan = np.random.randn(36).reshape(9, 4)
df = pd.DataFrame(data=datan, columns=list("ABCD"))
output = {}
for c in df.columns:
output[c] = df[c][df[c] >= 1].sum()
df2 = pd.DataFrame(output, index=[0])
df2
试试这个:
import pandas as pd
dc={} #The keys will identify the column name and its value differentiate how many times appears values greater than 1 .
for i in list(dataframe.columns.values):
dc[i] = dataframe.loc[dataframe[i].gt(1),i].count()