首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将计数器列表转换为稀疏Pandas DataFrame

将计数器列表转换为稀疏Pandas DataFrame
EN

Stack Overflow用户
提问于 2019-10-30 00:30:25
回答 1查看 288关注 0票数 0

我在构建一个带有稀疏数据类型的熊猫DataFrame时遇到了麻烦。我的输入是一堆存储为字典或计数器的特征向量。对于像文本的词袋表示这样的稀疏数据,将数据存储为密集的文档x术语矩阵通常是不合适和不可行的,并且对于保持数据结构的稀疏性是必要的。

例如,假设输入为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docs = [{'hello': 1}, {'world': 1, '!': 2}]

输出应等于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd
out = pd.DataFrame(docs).astype(pd.SparseDtype(float))

而不会在此过程中创建密集阵列。(我们可以检查out.dtypesout.sparse.density。)

尝试1:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
out = pd.DataFrame(dtype=pd.SparseDtype(float))
out.loc[0, 'hello'] = 1
out.loc[1, 'world'] = 1
out.loc[1, '!'] = 2

但这会产生密集的数据结构。

尝试2:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
out = pd.DataFrame({"hello": pd.SparseArray([]),
                    "world": pd.SparseArray([]),
                    "!": pd.SparseArray([])})
out.loc[0, 'hello'] = 1

但这会引起TypeError: SparseArray does not support item assignment via setitem的注意。

我最终在下面找到的解决方案在我尝试过的Pandas的早期版本中不起作用。

EN

回答 1

Stack Overflow用户

发布于 2019-10-30 00:30:25

这似乎适用于Pandas 0.25.1:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
out = pd.DataFrame([[0, 'hello', 1], [1, 'world', 1], [1, '!', 2]],
                   columns=['docid', 'word', 'n'])
out = out.set_index(['docid', 'word'])['n'].astype(pd.SparseDtype(float))
out = out.unstack()

或者更一般地说:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def dicts_to_sparse_dataframe(docs):
    rows = ((i, k, v)
            for i, doc in enumerate(docs)
            for k, v in doc.items())
    out = pd.DataFrame(rows, columns=['docid', 'word', 'n'])
    out = out.set_index(['docid', 'word'])['n'].astype(pd.SparseDtype(float))
    out = out.unstack()
    return out

然后:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> docs = [{'hello': 1}, {'world': 1, '!': 2}]
>>> df = dicts_to_sparse_dataframe(docs)
>>> df.sparse.density
0.5

我希望这不会在整个过程中创建密集的内存结构……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58617185

复制
相关文章
在Python如何将 JSON 转换为 Pandas DataFrame?
在数据处理和分析中,JSON是一种常见的数据格式,而Pandas DataFrame是Python中广泛使用的数据结构。将JSON数据转换为Pandas DataFrame可以方便地进行数据分析和处理。在本文中,我们将探讨如何将JSON转换为Pandas DataFrame,并介绍相关的步骤和案例。
网络技术联盟站
2023/08/03
1.3K0
在Python如何将 JSON 转换为 Pandas DataFrame?
Python-Pandas之DataFrame转字典
参考链接: Python | 使用Pandas.drop()从DataFrame删除行/列
用户7886150
2020/12/26
2K0
RDD转换为DataFrame
为什么要将RDD转换为DataFrame?因为这样的话,我们就可以直接针对HDFS等任何可以构建为RDD的数据,使用Spark SQL进行SQL查询了。这个功能是无比强大的。想象一下,针对HDFS中的数据,直接就可以使用SQL进行查询。
编程那点事
2023/02/25
7760
Pandas DataFrame笔记
1.属性方式,可以用于列,不能用于行 2.可以用整数切片选择行,但不能用单个整数索引(当索引不是整数时) 3.直接索引可以使用列、列集合,但不能用索引名索引行  用iloc取行,得到的series:
用户1075292
2018/01/23
9760
Pandas DataFrame笔记
jQuery将form列表转JSON
一、form表单序列化后的格式 image.png 二、JS 函数 function filedSelectJson(){ var a = {}; var reserveVenueCons = $("#orderForm").serializeArray(); var numreg = /\[[0-9]*\]\./;//正则表达式 var index = 0; var attnum = 5;//list对象中有几个属性,这里有5个:reserveField.id,
week
2018/08/27
3.6K0
jQuery将form列表转JSON
Python将字符串转换为列表
We can convert a string to list in Python using split() function.
全栈程序员站长
2022/09/06
6K0
将tensor转换为图像_tensor转int
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/07
11.5K0
图数据转换为DataFrame
•一、DataFrame•二、指定字段转换为DataFrame •2.1 CYPHER语句 •2.2 Python转换代码•三、将一个图转换为DataFrame •3.1 CYPHER语句 •3.2 Python转换代码
马超的博客
2022/09/02
9870
图数据转换为DataFrame
如何将Pandas数据转换为Excel文件
将数据导出到Excel文件通常是任何用户阅读和解释一组数据的最优先和最方便的方式。通过使用Pandas库,可以用Python代码将你的网络搜刮或其他收集的数据导出到Excel文件中,而且步骤非常简单。
玖柒的小窝
2021/11/01
7.6K0
dataframe行变换为列
使用 import org.apache.spark.sql.functions 里面的函数,具体的方式可以看 functions :
机器学习和大数据挖掘
2019/07/01
1.1K0
Pandas-3. DataFrame
Series组成的字典可以作为参数来创建DataFrame。其索引是所有Series的索引的并集。 例子:
悠扬前奏
2019/05/28
1.2K0
Python将两个列表转换为字典
最开始,我是想用2层for循环实现,但是发现太麻烦了。最简单的方法,使用zip()函数即可。
py3study
2020/08/26
5.1K0
Java将列表转换为数组,反之亦然
在本文中, 我们将快速学习如何将Java List (例如ArrayList )转换为数组,反之亦然。 如果您希望总体上了解有关ArrayList的更多信息,请随时阅读我们有关Java ArrayLists的文章。
用户7886150
2021/04/28
3.4K0
稀疏矩阵转置
矩阵是线性代数中的一个知识,刚开始学习的时候可能感觉不到它有什么用处,最初的感觉就是对二维数据的操作。其实现实生活中矩阵的用处太大了,设计领域相当的广泛。在此只讨论稀疏矩阵的转置问题;
大黄大黄大黄
2018/09/14
1.7K0
稀疏矩阵转置
将 Pandas 换为交互式表格的 Python 库
Pivottablejs是一个通过IPython widgets集成到Python中的JavaScript库,允许用户直接从DataFrame数据创建交互式和灵活的汇总报表。可以进行高效、清晰的数据分析和表示,帮助将数据从Pandas DataFrame转换为易于观察的交互式数据透视表。
数据STUDIO
2023/09/04
2370
将 Pandas 换为交互式表格的 Python 库
Pandas 如何创建 DataFrame
我们已经知道了什么是 Series,在使用 Series 之前,我们得知道如何创建 Series。
用户7886150
2020/12/26
1.6K0
Pandas DataFrame 取整列
使用 df = pd.read_csv("csv_file.csv") 读出来的数据 就是 DataFrame 格式 ? <class 'pandas.core.frame.DataFrame'>
莫听穿林
2022/01/10
1.7K0
将 Pandas 换为交互式表格的 Python 库
Pandas是我们日常处理表格数据最常用的包,但是对于数据分析来说,Pandas的DataFrame还不够直观,所以今天我们将介绍4个Python包,可以将Pandas的DataFrame转换交互式表格,让我们可以直接在上面进行数据分析的操作。
Python数据科学
2023/08/29
1970
将 Pandas 换为交互式表格的 Python 库
将 Pandas 换为交互式表格的 Python 库
Pandas是我们日常处理表格数据最常用的包,但是对于数据分析来说,Pandas的DataFrame还不够直观,所以今天我们将介绍4个Python包,可以将Pandas的DataFrame转换交互式表格,让我们可以直接在上面进行数据分析的操作。
用户6888863
2023/09/06
2600
将 Pandas 换为交互式表格的 Python 库
点击加载更多

相似问题

将Pandas DataFrame转换为稀疏矩阵

10

将Pandas DataFrame转换为列表

20

将列表转换为pandas DataFrame

12

将列表转换为dataframe pandas

20

将pandas DataFrame转换为列表列表

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文