- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
考虑这个 Pandas 数据框:
df = pd.DataFrame({
'User ID': [1, 2, 2, 3],
'Cupcakes': [1, 5, 4, 2],
'Biscuits': [2, 5, 3, 3],
'Score': [0.65, 0.12, 0.15, 0.9]
})
即。
User ID Cupcakes Biscuits Score
0 1 1 2 0.65
1 2 5 5 0.12
2 2 4 3 0.15
3 3 2 3 0.90
我要tidy ("melt")此数据使甜点 类型 是单独的观察结果。但我也想保留每个用户的分数。
使用 melt()
直接不起作用:
df.melt(
id_vars=['User ID'],
value_vars=['Cupcakes', 'Biscuits'],
var_name='Dessert', value_name='Enjoyment'
)
...给出:
User ID Dessert Enjoyment
0 1 Cupcakes 1
1 2 Cupcakes 5
2 2 Cupcakes 4
3 3 Cupcakes 2
4 1 Biscuits 2
5 2 Biscuits 5
6 2 Biscuits 3
7 3 Biscuits 3
我丢失了分数数据!
我不能使用 wide_to_long()
因为我的甜点类型没有通用的“ stub 名称”。
我无法将整理后的数据与原始数据联接或合并,因为整理后的数据已重新编制索引,并且用户 ID 对于每个观察而言不是唯一的。
如何整理这些数据但保留整理中未涉及的列?
最佳答案
在 DataFrame.melt
中将 Score
列添加到 id_vars
:
id_vars : tuple, list, or ndarray, optional
Column(s) to use as identifier variables.
df1 = df.melt(
id_vars=['User ID', 'Score'],
value_vars=['Cupcakes', 'Biscuits'],
var_name='Dessert', value_name='Enjoyment'
)
print (df1)
User ID Score Dessert Enjoyment
0 1 0.65 Cupcakes 1
1 2 0.12 Cupcakes 5
2 2 0.15 Cupcakes 4
3 3 0.90 Cupcakes 2
4 1 0.65 Biscuits 2
5 2 0.12 Biscuits 5
6 2 0.15 Biscuits 3
7 3 0.90 Biscuits 3
如果需要融化所有没有User ID
和Score
的列,省略value_vars
:
df.melt(
id_vars=['User ID', 'Score'],
var_name='Dessert', value_name='Enjoyment'
)
关于python - 如何在 Pandas 中整理(融化)数据并保留所有其他列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57175743/
我有一个复杂的 melt 函数需要执行。我试过逐步解决它并检查其他问题,但我很困惑! 这是我当前的数据框: 1 2 4 5 6 10 24 Userid u_
我知道,这个问题已经被问过好几次了,但我没有设法根据已经问过的问题构建我的解决方案。 DF 我有: id| country | series name | 2015 | 2016 | 2017
我正在尝试从名为 df 的数据帧创建以下名为 out 的数据帧。我有一种非常手动且缓慢的方法,但我希望它可以通过 groupby() 和 melt() 的组合来完成 import pandas as
我有一个像这样的 pandas DataFrame: df = pd.DataFrame({'custid':[1,2,3,4], ...: 'prod1':['jeans','tshirt','ja
我有这样一个数据框 NSW VIC 0 6718023 5023203 1 6735528 5048207 2 6742690 5061266 3 6766133 50
给定一个如下形式的方形 pandas DataFrame: a b c a 1 .5 .3 b .5 1 .4 c .3 .4 1 upper triangle 怎么可能?被熔化得到如
我玩 pandas 是为了适应它,我问自己是否可以在 pandas 中使用 Melt 功能而不需要太多麻烦? 我正在使用相当著名的titanic.csv数据集。 titanic = pd.read_c
我有一个关于航类的数据集,我有兴趣找出乘坐同一航类的一对乘客坐在同一排。假设所有航类中只有 Row 是唯一的,这意味着如果第 1 行在 10 号航类中被占用,那么它就不能出现在 11 号航类中。 即。
考虑这个 Pandas 数据框: df = pd.DataFrame({ 'User ID': [1, 2, 2, 3], 'Cupcakes': [1, 5, 4, 2],
这是我导入的数据框的前几行的示例(在完整数据集中,主题变量共有五个级别/因子,另外两个是代数 II 和几何)。 SID firstName lastName subject su
我有以下数据框: df = pd.DataFrame({'Date':['01/01/2021','08/01/2021'], 'a_score':[7,3],
我是一名优秀的程序员,十分优秀!