获取数据帧中的行名称(python pandas)

时间:2016-02-25 08:23:09

标签: python loops pandas

例如,我有一个数据帧,它有5行5列。有相同的名字。例如:

... A B C D E

A 0 0 0 0 0

B 0 0 0 0 0

C 0 0 0 0 0

D 0 0 0 0 0

E 0 0 0 0 0

如何通过我的数据框循环来比较列名和行名,以便将col和行名相等的值设置为1。

... A B C D E

A 1 0 0 0 0

B 0 1 0 0 0

C 0 0 1 0 0

D 0 0 0 1 0

E 0 0 0 0 1

2 个答案:

答案 0 :(得分:2)

您可以使用numpy.fill_diagonal作为dataframe的值:

proxies = {'http://10.20.1.128': 'http://10.10.1.10:5323'} 

修改

如果您需要填充行和列索引相同的值,您可以使用切割对角线的值,并将其分配给它,并随意分配给它:

import numpy as np
import pandas as pd

df = pd.DataFrame(np.zeros((5,5)), columns=list('ABCDE'), index=list("ABCDE"))

In [37]: np.fill_diagonal(df.values, 1)

In [38]: df
Out[38]:
   A  B  C  D  E
A  1  0  0  0  0
B  0  1  0  0  0
C  0  0  1  0  0
D  0  0  0  1  0
E  0  0  0  0  1

答案 1 :(得分:1)

或者,如果您的行和列未订购:

df.apply(lambda row: row.index == row.name, axis=1).astype(int)

最后的.astype(int)将布尔值转换为整数。