如何比较pandas数据帧中的值和列值


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()  

相关内容

  • 没有找到相关文章

最新更新