python - 获取列名作为具有相同列值的新列
问题描述
我有类似于这个的数据框:
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
...
我不确定如何解决这个问题并寻找想法
解决方案
这是您可以尝试的解决方案,
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
推荐阅读
- azure-devops - 可以使用 Wiql 查询检索工作项下的所有树
- reactjs - 在 React.Children.map 中将函数从父级传递给子级?
- sql - 检查sql代码是否正常工作的正确方法是什么?
- c - BestFit 算法实现。仅显示第一个输出
- kubernetes - 创建 k8s pod 时如何添加用户名
- python - nidaqmx co_channels 无法写入样本并继续写入样本
- ruby-on-rails - rails accept_nested_attributes_for 无法更新
- javascript - Vue组件不更新状态更改
- mysql - MariaDB:如何使用 STR_TO_DATE 考虑本地日期格式?
- rest - 现在使用 Ansible 将 CSV 附加到服务记录