2024-04-18 22:29:16 发布
网友
我有一个包含[ProDT,ID,…,D1,D2,D3…D7…]列的数据帧。我想提取D1~D15的列名列表。你知道吗
我应用了代码:
df_D = [col for col in df.columns if 'D' in col]
但是,包含字符“D”的所有列都被选中。 列数D*可能会改变,因此使用range(1,7)可能不是一个好的解决方案。你知道吗
非常感谢。你知道吗
可以使用^{}选择与以下模式匹配的所有列:
df.filter(regex=r'^D\d+')
详细信息
^D\d+
^
D
\d+
您可以调用每个列:
df[['D1', 'D2', ..., 'D15']]
或使用过滤器:
df.filter(like='D')
我希望这有帮助
对startswith的好的旧列表理解:
startswith
df[[i for i in df.columns if i.startswith('D')]]
或:
df.loc[:,df.columns.str.startswith('D')] #thanks @WeNYoBen
可以使用^{} 选择与以下模式匹配的所有列:
详细信息
^D\d+
^
断言行首的位置D
匹配字符D(区分大小写)\d+
匹配一个数字(等于[0-9])您可以调用每个列:
或使用过滤器:
我希望这有帮助
对
startswith
的好的旧列表理解:或:
相关问题 更多 >
编程相关推荐