python – 根据列名拆分pandas数据框

有没有办法根据列名拆分pandas数据框?作为一个例子,考虑数据帧有以下列df = [‘A_x’,’B_x’,’C_x’,’A_y’,’B_y’,’C_y’],我想创建两个数据帧X = [‘ A_x’,’C_x’]和Y = [‘A_y’,’C_y’].

我知道有可能这样做:

d = {'A': df.A_x,'B': df.B_x,'C': df.B_x}
X = pd.DataFrame (data=d)

但这不是理想的,因为在我的情况下,我在df中有2200列.有更优雅的解决方案吗?

解决方法

你可以使用
df.filter(regex=...)

import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randn(2,10),columns='Time A_x A_y A_z B_x B_y B_z C_x C_y C-Z'.split())
X = df.filter(regex='_x')
Y = df.filter(regex='_y')

产量

In [15]: X
Out[15]: 
        A_x       B_x       C_x
0 -0.706589  1.031368 -0.950931
1  0.727826  0.879408 -0.049865

In [16]: Y
Out[16]: 
        A_y       B_y       C_y
0 -0.663647  0.635540 -0.532605
1  0.326718  0.189333 -0.803648

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。