python - 使用列索引位置而不是列名的 Pandas 融化函数
问题描述
有没有办法将参数的列名设置为列index
位置,而不是列名?我看到的每个示例都在value_vars
. 我需要使用列索引。
例如,而不是:
df2 = pd.melt(df,value_vars=['asset1','asset2'])
使用类似于:
df2 = pd.melt(df,value_vars=[0,1])
解决方案
通过索引选择列名:
df = pd.DataFrame({
'asset1':list('acacac'),
'asset2':[4]*6,
'A':[7,8,9,4,2,3],
'D':[1,3,5,7,1,0],
'E':[5,3,6,9,2,4]
})
df2 = pd.melt(df,
id_vars=df.columns[[0,1]],
value_vars=df.columns[[2,3]],
var_name= 'c_name',
value_name='Value')
print (df2)
asset1 asset2 c_name Value
0 a 4 A 7
1 c 4 A 8
2 a 4 A 9
3 c 4 A 4
4 a 4 A 2
5 c 4 A 3
6 a 4 D 1
7 c 4 D 3
8 a 4 D 5
9 c 4 D 7
10 a 4 D 1
11 c 4 D 0
推荐阅读
- java - 如果参数相同,则将 pojo 类 A 的对象转换为 pojo 类 b 的对象
- c# - 将多个应用程序(android 应用程序、网站和 windows 应用程序)连接到同一个数据库的最佳方法是什么?
- c++ - 使用 Minecraft 协议读取缓冲区
- node.js - npm install -g 同时更新 package.json?
- webview - Xamarin.iOS 无法从 WebView 导航和导航事件控制 iOS 活动指示器
- c++ - 以当前(LocalSystem)用户的默认权限运行进程
- r - 通过 R 从 Bloomberg 检索存储为文本 (YES/NO) 的数据
- date - 根据日期和年份识别当前周
- javascript - 第二条线图,图表js需要不同的标签
- animation - FFMPEG 由于色彩空间不匹配而丢帧