gpt4 book ai didi

python - 使用 df.itertuples() 中的元组,如何在条件下检索每个元组元素的列值?

转载 作者:太空宇宙 更新时间:2023-11-04 00:35:39 26 4
gpt4 key购买 nike

我有一个 pandas.DataFrame 例如:

   1  2  3
1 1 0 0
2 0 1 0
3 0 0 1

它是从包含以下关系的集合创建的:

{(1,1),(2,2),(3,3)}

我正在尝试为此创建等价类。像这样:

[1] = {1}
[2] = {2}
[3] = {3}

到目前为止,我已经完成了以下工作:

testGenerator = generatorTest(matrix)
indexCount = 1
while True:
classRelation, loopCount = [], 1
iterable = next(testGenerator)
for i in iterable[1:]:
if i == 1:
classRelation.append(loopCount)
loopCount += 1
print ("[",indexCount,"] = ",set(classRelation))
indexCount += 1

如您所见,其中非常困惑。但我或多或少得到了想要的输出:

[ 1 ] =  {1}
[ 2 ] = {2}
[ 3 ] = {3}

我怎样才能以更整洁、更 pythonic 的方式完成相同的输出?

最佳答案

在这种情况下,您可以使用 pandas.DataFrame.idxmax()喜欢:

代码:

df.idxmax(axis=1)

测试代码:

df = pd.DataFrame([[1, 0, 0], [0, 1, 0], [0, 0, 1], [0, 1, 0]],
columns=[1, 2, 3], index=[1, 2, 3, 4])
print(df.idxmax(axis=1))

结果:

1    1
2 2
3 3
4 2
dtype: int64

关于python - 使用 df.itertuples() 中的元组,如何在条件下检索每个元组元素的列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44184081/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com