首页 > 解决方案 > 获取列名作为具有相同列值的新列

问题描述

我有类似于这个的数据框:


name    hobby   date         country      5           10           15         20 ...
Toby    Guitar  2020-01-19    Brazil     0.1245       0.2543      0.7763     0.2264
Linda   Cooking 2020-03-05    Italy      0.5411       0.2213      Nan        0.3342
Ben     Diving  2020-04-02    USA        0.8843       0.2333      0.4486     0.2122
...

我想要 int 列,复制它们,并将 int 作为列的新值,如下所示:


name    hobby   date         country      5      5     10      10     15     15    20      20...
Toby    Guitar  2020-01-19    Brazil     0.1245  5     0.2543  10    0.7763  15   0.2264   20
Linda   Cooking 2020-03-05    Italy      0.5411  5     0.2213  10    Nan     15   0.3342   20
Ben     Diving  2020-04-02    USA        0.8843  5     0.2333  10    0.4486  15   0.2122   20
...

我不确定如何解决这个问题并寻找想法

标签: pythonpandascalculated-columns

解决方案


这是您可以尝试的解决方案,

digits_ = pd.DataFrame(
    {col: [int(col)] * len(df) for col in df.columns if col.isdigit()}
)

pd.concat([df, digits_], axis=1)

    name    hobby        date country       5  ...      20  5  10  15  20
0   Toby   Guitar  2020-01-19  Brazil  0.1245  ...  0.2264  5  10  15  20
1  Linda  Cooking  2020-03-05   Italy  0.5411  ...  0.3342  5  10  15  20
2    Ben   Diving  2020-04-02     USA  0.8843  ...  0.2122  5  10  15  20

推荐阅读