python - 拆分数据框中的多列与特定列配对
问题描述
我有一个如下df的数据框:
Var_1 Var_2 Var_3 … Var_n date
0.016008 0.040933 0.121261 ... 146989.0 2018-03-21
0.015507 0.042487 0.116209 ... 144053.0 2018-03-22
0.015420 0.048447 0.125908 ... 154255.0 2018-03-23
0.014087 0.108278 0.115745 ... 167322.0 2018-03-24
0.016481 0.041167 0.078635 ... 210130.0 2018-03-25
我想对Var_i
和date
列进行子集化,然后返回重命名的数据框和相应的Var_i
:
names_df = df.columns.to_list()
for i in names_df:
i = df.loc[:, ['date', i]] # or something like df_Var_i = ...
但是,显然这样的代码不起作用。我想知道是否有一种简单的方法来处理它。
解决方案
您可以melt
,然后groupby
是variable
包含所有熔化date
列的列,然后从 groupby 对象创建一个字典(或列表):
d = dict(tuple(df.melt(id_vars='date').groupby('variable')))
d.keys()
dict_keys(['Var_1', 'Var_2', 'Var_3', 'Var_n'])
d['Var_1'].drop('variable',1)
date value
0 2018-03-21 0.016008
1 2018-03-22 0.015507
2 2018-03-23 0.015420
3 2018-03-24 0.014087
4 2018-03-25 0.016481
推荐阅读
- java - 使用 JNA 在 JAVA 中加载动态库是否有限制?
- ssl - 如何将我的域名的 http 更改为 https?
- sqlite - 读取 csv 文件时出现奇怪的字母和符号
- r - 如何将值与更多或更少进行比较
- ios - 当我尝试从 flutter 为 iOS 构建安装 pod 时,出现错误 Permission denied @ rb_sysopen - /Users/vimal/.netrc
- javascript - 安装firebase时出错`npm install -g firebase-tools`
- javascript - Mongoose 架构错误:“转换为字符串的值失败”
- git - 如何使用 git 进行 grep 但限制某些提交?
- c# - 将工具提示添加到 DataGridTextColumn WPF
- javascript - 使用 Node.js 进行名称实体识别或文本提取