我想遍历一个数据框,检查行名是否与列名匹配。如果它们匹配,我想将交点的值设置为零。我已经尝试了几种选择,但都没有用。这是伪代码,显示了我想做什么:

for row in dataframe:
    if row_name == column_name:
        dataframe[rowname][columnname] = 0


数据如下所示:

        NAME1    NAME2    NAME3
NAME1    1       .9         .2
NAME2    .6      1          .7
NAME3    .5      .8         1

最佳答案

您可以计算索引和列的交集。然后迭代相交并使用pd.DataFrame.loc设置值。

intersection = df.index & df.columns

for item in intersection:
    df.loc[item, item] = 0

print(df)

       NAME1  NAME2  NAME3
NAME1    0.0    0.9    0.2
NAME2    0.6    0.0    0.7
NAME3    0.5    0.8    0.0

关于python - 如何检查数据框行名是否与列名匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50873425/

10-09 20:55