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)
但出现错误:
在'>
'和'numpy.ndarray
'的实例之间不支持块值'int
'
列的值是浮点数。
有人知道我能解决吗??谢谢!
答案 0 :(得分:0)
我无法为您提供确切的代码,因为您的表不清楚,但是您可以尝试使用query()
:-
df_filtered = df.query('a > 1')
其中a
是您要过滤的列的标题。
要添加多个条件,可以在每列之间使用&
df_filtered = df.query('a > 1 & b > 1')
答案 1 :(得分:0)
请尝试以下代码:
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
答案 2 :(得分:0)
尝试一下:
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()