我有一个数据框架,其中有一列用于分组和问题答案列:
Group Q1 Q2 Q3 Q4
0 1 A B C 6
1 1 B C A A
2 1 E F V A
3 2 R T Y O
4 2 M Z D F
我想将问题的列移到行中,这样所需的数据框将如下所示:
Group Question Answer
0 1 Q1 A
1 1 Q1 B
2 1 Q1 R
3 1 Q2 B
4 1 Q2 C
5 1 Q2 F
...依此类推,直到最后一行:
[2 Q4 F]
最好的方法是什么?
您也可以使用unstack
# do unstack
df = df.set_index('Group').unstack().reset_index()
# rename columns
df.columns = ['Group','Question','Answer']
df.melt('Group', var_name='Question', value_name='Answer')
Group Question Answer
0 1 Q1 A
1 1 Q1 B
2 1 Q1 E
3 2 Q1 R
4 2 Q1 M
5 1 Q2 B
6 1 Q2 C
7 1 Q2 F
8 2 Q2 T
9 2 Q2 Z
10 1 Q3 C
11 1 Q3 A
12 1 Q3 V
13 2 Q3 Y
14 2 Q3 D
15 1 Q4 6
16 1 Q4 A
17 1 Q4 A
18 2 Q4 O
19 2 Q4 F
pd.DataFrame([
(g, q, a)
for g, *A in zip(*map(df.get, df))
for q, a in zip([*df][1:], A)
], columns=['Group', 'Question', 'Answer'])
Group Question Answer
0 1 Q1 A
1 1 Q2 B
2 1 Q3 C
3 1 Q4 6
4 1 Q1 B
5 1 Q2 C
6 1 Q3 A
7 1 Q4 A
8 1 Q1 E
9 1 Q2 F
10 1 Q3 V
11 1 Q4 A
12 2 Q1 R
13 2 Q2 T
14 2 Q3 Y
15 2 Q4 O
16 2 Q1 M
17 2 Q2 Z
18 2 Q3 D
19 2 Q4 F
我想使用两列作为行ID,同时计算基于时间的分组。请看下图: 转化成这样: 正在发生的是,X在时间10发生了0次,但在15和23发生了1次。 Y在10点钟发生了3次,但在15和23没有。等等。
我有以下数据框: 我想将其转换为: i、 e.我希望保留前4列,但将剩余的每列值分配到单独的行中。有没有一种不使用for循环的方法来实现这一点?
我有一个数据框架,目前看起来是这样的, 数据框架1 我需要创建一个像这样的数据帧。 数据框架2 我需要从数据帧1列的值填充数据帧2的列。图片显示了示例。对此应该有什么算法和过程? 这是示例数据集
问题内容: 我正在寻找一种方法来反向旋转数据框。据我所知,pandas提供了一种pivot或pivot_table方法将EAV df转换为“普通”方法。但是,还有一种方法可以做逆运算吗? 所以给定数据框: 我想将其转换为(EAV模型): 这样做最有效的方法是什么? 问题答案: 假设是索引,将执行以下操作: 如果不是索引,请像这样设置:
我目前拥有以下数据帧: 当前: 我想旋转桌子,得到以下结果: 预期的: 问题: 如何透视数据帧以获得此输出? 我尝试过的事情: 如何在Pandas中透视数据帧?[重复] 重塑和透视表 使DataFrame.pivot索引参数真正成为可选参数 熊猫中的重塑-枢轴、枢轴表、堆栈和取消堆栈用图片解释
问题内容: 我对熊猫有些陌生。我有一个熊猫数据框,它是1行乘23列。 我想将其转换为系列吗?我想知道最pythonic的方法是什么? 我试过了,但是抱怨。它不够聪明,无法意识到它仍然是数学上的“向量”。 谢谢! 问题答案: 它不够聪明,无法意识到它仍然是数学上的“向量”。 可以说它足够聪明,可以识别尺寸差异。:-) 我认为您可以做的最简单的事情是使用位置选择该行,这将为您提供一个Series,其列