我正在寻找一种方法来反向旋转数据框。据我所知,pandas提供了一种pivot或pivot_table方法将EAV
df转换为“普通”方法。但是,还有一种方法可以做逆运算吗?
所以给定数据框:
$df userid A B C 0 1 1 0 1 1 3 1 2 1 5 0
我想将其转换为(EAV模型):
$df E A V 0 A 1 0 B 1 0 C 0 1 A 1 1 B 3 1 C 1 2 A 1 2 B 5 2 C 0
这样做最有效的方法是什么?
假设userid
是索引,df.stack
将执行以下操作:
In [133]: df.stack().reset_index().rename(columns={'userid' : 'E', 'level_1' : 'A', 0 : 'V'})
Out[133]:
E A V
0 0 A 1
1 0 B 1
2 0 C 0
3 1 A 1
4 1 B 3
5 1 C 1
6 2 A 1
7 2 B 5
8 2 C 0
如果userid
不是索引,请像这样设置:
df.set_index('userid', inplace=True)
问题内容: 这可能很容易,但是我有以下数据: 在数据框1中: 在数据框2中: 我想要一个具有以下形式的数据框: 我尝试使用该方法,但是得到了交叉连接(即笛卡尔积)。 什么是正确的方法? 问题答案: 通常看来,您只是在寻找联接:
问题内容: 我正在编写一个脚本,以将带有标头的大.xlsx文件减少到一个csv中,然后根据标头名称仅写有所需列的新csv文件。 我得到的错误是最后一部分代码,它说 我确定我忽略了一些愚蠢的事情,但是我已经阅读了熊猫网站上的to_csv文档,但我仍然感到茫然。我知道我使用了不正确的to_csv参数,但我似乎无法理解我猜的文档。 任何帮助表示赞赏,谢谢! 问题答案: 选择特定列的方法是这样的-
问题内容: 考虑这个简单的例子 我想编写一个以数据框和列为输入的函数。 现在这有效: 这也适用: 但这 失败了 怎么了 我担心使用某些 链接 可能会产生一些细微的错误(https://pandas.pydata.org/pandas- docs/stable/indexing.html#why-does-assignment-fail-when-using-chained- indexing )
我想使用两列作为行ID,同时计算基于时间的分组。请看下图: 转化成这样: 正在发生的是,X在时间10发生了0次,但在15和23发生了1次。 Y在10点钟发生了3次,但在15和23没有。等等。
问题内容: 如果我有一个包含以下列的数据框: 我想说:这是一个数据框,请给我列出对象类型或日期时间类型的列的列表吗? 我有一个将数字(Float64)转换为两位小数的函数,并且我想使用此数据框列的特定类型的列表,并通过此函数运行它以将它们全部转换为2dp。 也许: 问题答案: 如果您想要某种类型的列的列表,可以使用:
问题内容: 我有大熊猫表格数据框要转换为JSON。标准的.to_json()函数不会为JSON创建紧凑格式。如何仅使用pandas获得这样的JSON输出格式? 这是用于表格数据的JSON的一种非常紧凑的格式。(我可以在行上循环。…但是) 问题答案: 看来你需要先于: 由于尚未实现: ValueError:选项“ orient”的值“ list”无效 编辑: 如果index不是column,请添加: