获取特定列的列名

2024-09-30 01:24:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我从一个接口中得到一个数据帧,其中有一个隐式命名的列,我知道其中一些子字符串在所有列上是互斥的。在

一个简化的例子如下:

df = pandas.DataFrame({'d10432first34sf':[1,2,3],'d10432second34sf':[4,5,6]})
df
   d10432first34sf  d10432second34sf
0                1                 4
1                2                 5
2                3                 6

由于我知道列子字符串,因此可以通过以下方式访问各个列:

^{pr2}$

但是现在,我还需要得到每个列的确切列名,这是我不知道的。我怎么才能做到呢?在


Tags: 数据字符串dataframepandasdf方式命名例子
1条回答
网友
1楼 · 发布于 2024-09-30 01:24:42

添加.columns

cols = df.filter(like='first').columns
print (cols)
Index(['d10432first34sf'], dtype='object')

或者更好的^{}和{a2}:

^{pr2}$

计时不相同:

 df = pd.DataFrame({'d10432first34sf':[1,2,3],'d10432second34sf':[4,5,6]})
df = pd.concat([df]*10000, axis=1).reset_index(drop=True)
df = pd.concat([df]*1000).reset_index(drop=True)
df.columns = df.columns + pd.Series(range(10000 * 2)).astype('str')

print (df.shape)
(3000, 20000)

In [267]: %timeit df.filter(like='first').columns
10 loops, best of 3: 117 ms per loop

In [268]: %timeit df.columns[df.columns.str.contains('first')]
100 loops, best of 3: 11.9 ms per loop

相关问题 更多 >

    热门问题