Questions tagged «pandas»

Pandas是用于数据处理和分析的Python库,例如,在统计,实验科学结果,计量经济学或金融学中常见的数据框,多维时间序列和横截面数据集。Pandas是Python中主要的数据科学库之一。

6
熊猫:将类别转换为数字
假设我有一个包含以下国家/地区的数据框: cc | temp US | 37.0 CA | 12.0 US | 35.0 AU | 20.0 我知道有一个pd.get_dummies函数可以将国家/地区转换为“一次性编码”。但是,我希望将它们转换为索引,以便获取cc_index = [1,2,1,3]。 我假设有一种比使用get_dummies和numpy where子句更快的方法,如下所示: [np.where(x) for x in df.cc.get_dummies().values] 这在R中使用“因素”更容易做到,所以我希望熊猫也有类似的东西。


5
IPython Notebook单元多个输出
我在IPython Notebook中运行此单元格: # salaries and teams are Pandas dataframe salaries.head() teams.head() 结果是我只得到teams数据帧的输出,而不是salaries和的输出teams。如果我只是运行,salaries.head()则会得到salaries数据帧的结果,但是在运行这两个语句时,我只会看到的输出teams.head()。我该如何纠正?


5
将numpy数组作为列添加到Pandas数据框
我有一个形状为(X,Y)的Pandas数据框对象,如下所示: [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 还有一个形状为(X,Z)的numpy稀疏矩阵(CSC),看起来像这样 [[0, 1, 0], [0, 0, 1], [1, 0, 0]] 如何将矩阵中的内容添加到新命名列中的数据框中,以使数据框最终像这样: [[1, 2, 3, [0, 1, 0]], [4, 5, 6, [0, 0, 1]], [7, 8, 9, [1, 0, 0]]] 请注意,数据框现在具有形状(X,Y + 1),并且矩阵中的行是数据框中的元素。
82 python  numpy  pandas 

2
Python-数据框尺寸
Python的新手。 在R中,您可以使用dim(...)获得矩阵的尺寸。Python Pandas中数据框的对应函数是什么?
81 python  pandas 


5
Python Pandas如何将groupby操作结果分配回父数据帧中的列?
我在IPython中具有以下数据框,其中每一行都是一只股票: In [261]: bdata Out[261]: <class 'pandas.core.frame.DataFrame'> Int64Index: 21210 entries, 0 to 21209 Data columns: BloombergTicker 21206 non-null values Company 21210 non-null values Country 21210 non-null values MarketCap 21210 non-null values PriceReturn 21210 non-null values SEDOL 21210 non-null values yearmonth 21210 non-null values dtypes: float64(2), int64(1), object(4) 我想应用一个groupby操作,计算“ yearmonth”列中每个日期的所有内容的上限加权平均回报。 这按预期工作: …

3
从(row,col,values)元组列表构造pandas DataFrame
我有一个元组列表,例如 data = [ ('r1', 'c1', avg11, stdev11), ('r1', 'c2', avg12, stdev12), ('r2', 'c1', avg21, stdev21), ('r2', 'c2', avg22, stdev22) ] 我想将它们放入一个熊猫数据框,其中第一行命名为行,第二列命名为列。看来,处理行名称的方法类似,pandas.DataFrame([x[1:] for x in data], index = [x[0] for x in data])但如何处理列以获得2x2矩阵(前一组的输出为3x4)?是否还有一种更智能的方式来处理行标签,而不是显式地忽略它们? 编辑似乎我将需要2个数据框-一个用于平均值,一个用于标准差,对吗?还是可以在每个“单元格”中存储值列表?

2
熊猫to_html()截断字符串内容
我有一个DataFrame包含文本数据的Python Pandas对象。我的问题是,当我使用to_html()函数时,它会截断输出中的字符串。 例如: import pandas df = pandas.DataFrame({'text': ['Lorem ipsum dolor sit amet, consectetur adipiscing elit.']}) print (df.to_html()) 输出在处被截断 adapis... <table border="1" class="dataframe"> <thead> <tr style="text-align: right;"> <th></th> <th>text</th> </tr> </thead> <tbody> <tr> <th>0</th> <td> Lorem ipsum dolor sit amet, consectetur adipis...</td> </tr> </tbody> </table> 关于SO有一个相关问题,但是它使用占位符和搜索/替换功能对HTML进行后处理,我想避免这种情况: 将Pandas数据框的全部内容写入HTML表 有没有更简单的解决方案来解决这个问题?我从文档中找不到任何相关内容。
81 python  html  pandas 

7
如何选择数据框的最后一列
我已经做了一些寻找该问题答案的搜索,但是我能弄清楚的是: df[df.columns[len(df.columns)-1]] 在我看来,这似乎很古怪,又不合Python(并且很慢?)。 在不指定列名的情况下,为pandas数据框中的最后一列选择数据的最简单方法是什么?
81 python  pandas 

3
如何将Parquet文件读入Pandas DataFrame?
如何在不建立集群计算基础架构(例如Hadoop或Spark)的情况下,将大小适中的Parquet数据集读取到内存中的Pandas DataFrame中?我只想在笔记本电脑上使用简单的Python脚本在内存中读取这些数据,但是数量很少。数据不驻留在HDFS上。它位于本地文件系统上,也可能位于S3中。我不想启动并配置其他服务,例如Hadoop,Hive或Spark。 我以为Blaze / Odo可以做到这一点:Odo文档中提到了Parquet,但是这些示例似乎都是通过外部Hive运行时进行的。
81 python  pandas  parquet  blaze 

3
Pandas的性能适用于vs.np.vectorize从现有列创建新列
我正在使用Pandas数据框,并希望根据现有列创建一个新列。对于df.apply()和之间的速度差异,我还没有很好的讨论np.vectorize(),所以我想在这里问一下。 熊猫apply()功能很慢。根据我的测量(在一些实验中显示如下),至少在我的2016 MacBook Pro上,使用np.vectorize()它比使用DataFrame函数快25倍(或更多)apply()。这是预期的结果吗?为什么? 例如,假设我具有带N行的以下数据框: N = 10 A_list = np.random.randint(1, 100, N) B_list = np.random.randint(1, 100, N) df = pd.DataFrame({'A': A_list, 'B': B_list}) df.head() # A B # 0 78 50 # 1 23 91 # 2 55 62 # 3 82 64 # 4 99 80 进一步假设我想根据这两列A和创建一个新列B。在下面的示例中,我将使用一个简单的函数divide()。要应用此功能,我可以使用df.apply()或np.vectorize(): def …

1
在什么情况下可以使用Dask代替Apache Spark?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 改善这个问题 我目前正在使用Pandas和Spark进行数据分析。我发现Dask提供了并行化的NumPy数组和Pandas DataFrame。 Pandas使用Python进行数据分析既简单又直观。但是由于系统内存有限,我发现难以处理Pandas中的多个较大数据帧。 简单答案: Apache Spark是一个包罗万象的框架,结合了分布式计算,SQL查询,机器学习以及在JVM上运行的更多功能,并且通常与Hadoop等其他大数据框架共同部署。...一般而言,Dask比Spark更轻巧。 我从http://dask.pydata.org/en/latest/spark.html了解以下详细信息 轻巧轻巧 Dask通常在单台计算机上使用,但在分布式集群上也可以很好地运行。 Dask提供并行数组,数据框,机器学习和自定义算法 Dask对Python用户具有优势,因为它本身就是Python库,因此在出现问题时进行序列化和调试会更加顺利。 Dask放弃了高级理解,以允许用户表达更复杂的并行算法。 Dask的重量更轻,并且更易于集成到现有代码和硬件中。 如果您想要一个可以完成所有任务的项目,并且已经在大数据硬件上,那么Spark是一个安全的选择 Spark通常用于中小型集群,但也可以在一台机器上很好地运行。 我从下面的链接https://www.continuum.io/blog/developer-blog/high-performance-hadoop-anaconda-and-dask-your-cluster了解有关Dask的更多信息 如果在将Pandas,NumPy或其他计算与Python配合使用时在一台计算机上遇到内存问题,存储限制或CPU边界,Dask可以帮助您在单台计算机上扩展所有核心,或进行扩展在整个群集的所有核心和内存上。 Dask在单台机器上运行良好,可以利用笔记本电脑上的所有内核并处理大于内存的数据 在具有数百个节点的群集上灵活地伸缩。 Dask从Python原生处理具有不同格式和存储系统的数据,包括Hadoop分布式文件系统(HDFS)和Amazon S3。Anaconda和Dask可以与您现有的企业Hadoop发行版一起使用,包括Cloudera CDH和Hortonworks HDP。 http://dask.pydata.org/en/latest/dataframe-overview.html 局限性 Dask.DataFrame没有实现整个Pandas接口。用户对此感到失望。值得注意的是,dask.dataframe具有以下限制: 从未排序的列设置新索引非常昂贵 许多操作,例如groupby-apply和未排序列上的join都需要设置索引,如上所述,这很昂贵 熊猫API非常大。Dask.dataframe不会尝试实现许多熊猫功能或任何更奇特的数据结构,例如NDFrames 感谢Dask开发人员。似乎是很有前途的技术。 总的来说,我可以理解Dask比spark更易于使用。达斯(Dask)与熊猫(Pandas)一样灵活,具有更大的计算能力和更多的CPU并行度。 我了解上述有关Dask的所有事实。 因此,使用Dask可以处理大约多少数据(以TB为单位)?

4
熊猫图未显示
在脚本(不是IPython)中使用此脚本时,什么也没有发生,即绘图窗口不出现: import numpy as np import pandas as pd ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000)) ts.plot() 即使添加time.sleep(5),也什么也没有。为什么? 有没有一种方法,而不必手动调用matplotlib?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.