如果我具有以下数据框:
A B C D E
1 1 2 0 1 0
2 0 0 0 1 -1
3 1 1 3 -5 2
4 -3 4 2 6 0
5 2 4 1 9 -1
T 1 2 2 4 1
最后一行是我每一列的阈值。我想计算是否在python pandas中降低或降低阈值。
所需的输出为;
A B C D E
Count 2 2 3 3 4
但是,我需要用一个通用的解决方案来解决这个问题,而不是针对这些特定的列。因为我有一个很大的数据集。我无法在代码中为其指定列名。
您能帮我吗?
答案 0 :(得分:4)
首先选择没有索引的所有行,然后按DataFrame.lt
与最后一行进行比较,然后sum
并将Series
转换为DataFrame
并由Series.to_frame
转换为一行由DataFrame.T
转置:
df = df.iloc[:-1].lt(df.iloc[-1]).sum().to_frame('count').T
print (df)
A B C D E
count 2 2 3 3 4
带有DataFrame
构造函数的Numpy替代项:
arr = df.values
df = pd.DataFrame([np.sum(arr[:-1] < arr[-1], axis=0)], columns=df.columns, index=['count'])
print (df)
A B C D E
count 2 2 3 3 4