python - 将值分配给由正则表达式获得的一组列

标签 python regex pandas dataframe

我有一个相当大的数据框,其中包含数百个功能(列),我喜欢使用列名称上的过滤方法来访问它的子集:

X = df.filter(regex='d2v_*')

这效果很好,但现在我正在尝试通过 X 的转换来更改 df 这个特定子集的值,例如 X - X .mean(axis=0).

我很想使用基于列名称的掩码,但也许有更好的解决方案?

最佳答案

您可以执行类似的操作:

In [72]: df
Out[72]:
    a   b  d2v_1  d2v_2  d2v_3   x
0  97  19     53      2     29  19
1  74  23      8     80     22  76
2  27  41     72     76     48  62
3   6  90     71     53      7  87
4  21  61     14     64     17  19

In [75]: cols = df.columns[df.columns.str.contains(r'^d2v_')]

In [76]: cols
Out[76]: Index(['d2v_1', 'd2v_2', 'd2v_3'], dtype='object')

In [77]: df.loc[:, cols] -= df.loc[:, cols].mean()

In [78]: df
Out[78]:
    a   b  d2v_1  d2v_2  d2v_3   x
0  97  19    9.4  -53.0    4.4  19
1  74  23  -35.6   25.0   -2.6  76
2  27  41   28.4   21.0   23.4  62
3   6  90   27.4   -2.0  -17.6  87
4  21  61  -29.6    9.0   -7.6  19

关于python - 将值分配给由正则表达式获得的一组列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40392775/

相关文章:

regex - 使用R中的gsub替换数据帧列中的特定值

python - 加入 2 个具有不同列数的 Pandas 数据框

python - Pycharm:使用 Jupyter 而不是提示进行调试

python - 在 Django 上的必需 selectDateWidget 上显示 empty_label

python - 为什么我无法查看数据框中的更多行?

python - 按索引对 pandas 数据框进行排序,然后按字母顺序排序

javascript - RegExp 与使用简单的正则表达式文字不同

java - 在字符串正则表达式 C/W 中查找重复的单词

python - 根据另一个数据框的列名和索引值填充数据框

python - 连接 pandas 数据帧 - 传递的所有对象都是 None