基于列名的子集结构数组

1 投票
1 回答
597 浏览
提问于 2025-04-18 06:01

我有一个从CSV文件创建的结构化数组。

这个数组里有很多字段/列。我想要创建一个子集数组。

z=mydata[['z1','z2','z3']] 这样做可以实现,但有时候 z 只包含 z1-z2 或者 z1-z10

有没有简单的方法可以选出所有以 z 开头的列名,不管数据里有多少列?显然,得到的数组列数会不同,但这没关系。

1 个回答

1

虽然看起来不太好,但你可以这样做:

z = mydata[[x for x in a.dtype.names if 'z' in x]]

实际上,你是在遍历所有的列名,检查每个列名是否符合条件。如果有更好的方法,我会很感兴趣,因为我在使用pandas时也会用到 pd.DataFrame.columns 这个属性来做类似的操作。

撰写回答