- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Python 新手,我有一个数据框需要进行一些复杂的 reshape 。最好用一个使用虚拟数据的示例来描述:
我有这个:
原始数据框是:
testdata = [('State', ['CA', 'FL', 'ON']),
('Country', ['US', 'US', 'CAN']),
('a1', [0.059485629, 0.968962817, 0.645435903]),
('b2', [0.336665658, 0.404398227, 0.333113735]),
('Test', ['Test1', 'Test2', 'Test3']),
('d', [20, 18, 24]),
('e', [21, 16, 25]),
]
df = pd.DataFrame.from_items(testdata)
我想要的数据框是:
testdata2 = [('State', ['CA', 'CA', 'FL', 'FL', 'ON', 'ON']),
('Country', ['US', 'US', 'US', 'US', 'CAN', 'CAN']),
('Test', ['Test1', 'Test1', 'Test2', 'Test2', 'Test3', 'Test3']),
('Measurements', ['a1', 'b2', 'a1', 'b2', 'a1', 'b2']),
('Values', [0.059485629, 0.336665658, 0.968962817, 0.404398227, 0.645435903, 0.333113735]),
('Steps', [20, 21, 18, 16, 24, 25]),
]
dfn = pd.DataFrame.from_items(testdata2)
看起来该解决方案可能需要使用熔化、堆栈和多索引,但我不确定如何将所有这些结合在一起。
任何建议的解决方案将不胜感激。
谢谢。
最佳答案
让我们尝试一下:
df1 = df.melt(id_vars=['State','Country','Test'],value_vars=['a1','b2'],value_name='Values',var_name='Measuremensts')
df2 = df.melt(id_vars=['State','Country','Test'],value_vars=['d','e'],value_name='Steps').drop('variable',axis=1)
df1.merge(df2, on=['State','Country','Test'], right_index=True, left_index=True)
输出:
State Country Test Measuremensts Values Steps
0 CA US Test1 a1 0.059486 20
1 FL US Test2 a1 0.968963 18
2 ON CAN Test3 a1 0.645436 24
3 CA US Test1 b2 0.336666 21
4 FL US Test2 b2 0.404398 16
5 ON CAN Test3 b2 0.333114 25
或者使用@JohnGalt解决方案:
pd.concat([pd.melt(df, id_vars=['State', 'Country', 'Test'], value_vars=x) for x in [['d', 'e'], ['a1', 'b2']]], axis=1)
关于pandas - 使用熔化、堆栈和多索引 reshape 数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45523818/
我有一个小问题,概念上似乎很简单,但我找不到方法...... 假设我有一个 data.frame df2,其中一列列出了汽车品牌,另一列列出了每个品牌的所有型号,并用“,”分隔。我已经获得了 df2
我有一个如下所示的数据框: id Revenue Cost qty time 0 A 400 50 2 1 1 A
reshape2是一个允许强大的数据转换数组的包,通过它的两部分熔化/类型转换方法。然而,像所有工具一样,它嵌入了限制它可以处理的情况的假设。 什么数据整形问题可以解决reshape2不以目前的形式处
看看这个包含五个观测值和两个因子变量的测试数据集。 test respid s2q1 s2q2 1 32
这个问题在这里已经有了答案: Reshaping data.frame from wide to long format (9 个回答) 5年前关闭。 我怎样才能“取消旋转”表格?对此的正确技术术语是
我在 pandas DataFrame 中有这样的数据: 我想将它转换成这个(在 pandas DataFrame 中): 我尝试使用 df.melt()、df.pivot() 和 df.T() 但它
这个问题会寻求多种方法LET/LAMBDA VBA UDF和 Power Query Function ,所以不会有单一的正确答案,而是要用作引用的方法的征集。 Scott提出问题 here关于对包含
我是一名优秀的程序员,十分优秀!