pandas 返回panda中同名列的位置

kmbjn2e3  于 2022-11-20  发布在  其他
关注(0)|答案(4)|浏览(211)

我想获取同名列(即列A)的位置。
数据框a:

A        B        A       C
text1    text3    text5   text7
text2    text4    text6   text8

我可以获得列A的位置,但如何获得第二列的位置。有多个 Dataframe 具有不同的列数,并且A的位置在 Dataframe 中不相同。谢谢。

for col in a.columns:   
        if col == 'A':
            indx1 = a.columns.get_loc(col)

        #if second column A 
            indx2 = a.columns.get_loc(col)
8dtrkrch

8dtrkrch1#

使用np.where()可以轻松获得结果。

df = pd.DataFrame(
    data=[["text1", "text2", "text5", "text7"], ["text2", "text4", "text6", "text8"]],
    columns=["A", "B", "A", "D"],
)
np.where(df.columns == "A")[0]

输出:

array([0, 2], dtype=int64)
gzjq41n4

gzjq41n42#

res = []
for index, col in enumerate(a.columns):
        if col == 'A':
            res.append(index)

print(res)

这将为您提供所有同名列的位置

moiiocjp

moiiocjp3#

作为一行程序,它返回重复列的索引位置:

indexes = [i for i, j in zip(range(len(df.columns)), df.columns) if j in df.loc[:, df.columns.value_counts() > 1].columns]

在本例中,它返回:[0, 2],因为列A是重复的。

k5ifujac

k5ifujac4#

如果找到“A”:

np.where(df.columns == 'A')[0]

实验结果:

array([0, 2], dtype=int64)

如果找到所有重复列名:

np.where(df.columns.duplicated(keep=False))[0]

实验结果:

array([0, 2], dtype=int64)

相关问题