这是一个基本问题。我有一个方形数组,其中包含行和列的总和。例如:
df = pd.DataFrame([[0,0,1,0], [0,0,1,0], [1,0,0,0], [0,1,0,0]], index = ["a","b","c","d"], columns = ["a","b","c","d"])
df["sumRows"] = df.sum(axis = 1)
df.loc["sumCols"] = df.sum()
返回:
In [100]: df
Out[100]:
a b c d sumRows
a 0 0 1 0 1
b 0 0 1 0 1
c 1 0 0 0 1
d 0 1 0 0 1
sumCols 1 1 2 0 4
我需要找到与 0 匹配的 sumCols 行的列标签。目前我正在这样做:
[df.loc["sumCols"] == 0].index
但是这返回了一个奇怪的索引类型对象。我想要的只是一个符合此条件的值列表,即:在本例中为 ['d']。
最佳答案
有两种方法(索引对象可以转换为像列表一样的可交互对象)。
对列执行此操作:
columns = df.columns[df.sum()==0]
columns = list(columns)
或者您可以旋转 Dataframe 并将列视为行:
list(df.T[df.T.sumCols == 0].index)
关于python - 当行元素满足条件 Pandas 时查找列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41289074/