Questions tagged «pandas»

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


22
如何在Pandas的DataFrame中的行上进行迭代?
我有一个DataFrame熊猫来的: import pandas as pd inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}] df = pd.DataFrame(inp) print df 输出: c1 c2 0 10 100 1 11 110 2 12 120 现在,我要遍历该框架的行。对于每一行,我希望能够通过列名访问其元素(单元格中的值)。例如: for row in df.rows: print row['c1'], row['c2'] 熊猫有可能这样做吗? 我发现了类似的问题。但这并不能给我我所需的答案。例如,建议在那里使用: for date, row in df.T.iteritems(): 要么 for row in df.iterrows(): 但我不了解该row对象是什么以及如何使用它。
1943 python  pandas  rows  dataframe 

26
重命名熊猫列
我有一个使用熊猫和列标签的DataFrame,我需要对其进行编辑以替换原始列标签。 我想A在原始列名称为的DataFrame 中更改列名称: ['$a', '$b', '$c', '$d', '$e'] 至 ['a', 'b', 'c', 'd', 'e']. 我已经将编辑后的列名存储在列表中,但是我不知道如何替换列名。

15
从pandas DataFrame删除列
在删除DataFrame中的列时,我使用: del df['column_name'] 这很棒。为什么不能使用以下内容? del df.column_name 由于可以按来访问列/系列df.column_name,因此我希望它能正常工作。
1321 python  pandas  dataframe 

17
在pandas数据框中选择多个列
我在不同的列中有数据,但是我不知道如何提取数据以将其保存在另一个变量中。 index a b c 1 2 3 4 2 3 4 5 如何选择'a','b'并将其保存到df1? 我试过了 df1 = df['a':'b'] df1 = df.ix[:, 'a':'b'] 似乎没有任何工作。
1108 python  pandas  dataframe  select 

19
从pandas DataFrame列标题获取列表
我想从pandas DataFrame获取列标题的列表。DataFrame来自用户输入,所以我不知道会有多少列或它们将被称为什么。 例如,如果给我这样的数据框: >>> my_dataframe y gdp cap 0 1 2 5 1 2 3 9 2 8 7 2 3 3 4 7 4 6 7 7 5 4 8 3 6 8 2 8 7 9 9 10 8 6 6 4 9 10 10 7 我想要一个这样的列表: >>> …
1013 python  pandas  dataframe 

16
使用熊猫的“大数据”工作流程
在学习熊猫的过程中,我试图迷惑了这个问题很多月。我在日常工作中使用SAS,这非常有用,因为它提供了核心支持。但是,由于许多其他原因,SAS作为一个软件也是很糟糕的。 有一天,我希望用python和pandas取代我对SAS的使用,但是我目前缺少大型数据集的核心工作流程。我不是在谈论需要分布式网络的“大数据”,而是文件太大而无法容纳在内存中,但文件又足够小而无法容纳在硬盘上。 我的第一个想法是用来HDFStore将大型数据集保存在磁盘上,然后仅将需要的部分拉入数据帧中进行分析。其他人提到MongoDB是更易于使用的替代方案。我的问题是这样的: 什么是实现以下目标的最佳实践工作流: 将平面文件加载到永久的磁盘数据库结构中 查询该数据库以检索要输入到熊猫数据结构中的数据 处理熊猫中的片段后更新数据库 现实世界中的示例将不胜感激,尤其是那些从“大数据”中使用熊猫的人。 编辑-我希望如何工作的示例: 迭代地导入一个大的平面文件,并将其存储在永久的磁盘数据库结构中。这些文件通常太大而无法容纳在内存中。 为了使用Pandas,我想读取这些数据的子集(通常一次只读取几列),使其适合内存。 我将通过对所选列执行各种操作来创建新列。 然后,我将不得不将这些新列添加到数据库结构中。 我正在尝试找到执行这些步骤的最佳实践方法。阅读有关熊猫和pytables的链接,似乎添加一个新列可能是个问题。 编辑-专门回答杰夫的问题: 我正在建立消费者信用风险模型。数据类型包括电话,SSN和地址特征;财产价值;犯罪记录,破产等贬义信息。我每天使用的数据集平均有近1,000到2,000个字段,这些字段是混合数据类型:数字和字符数据的连续,名义和有序变量。我很少追加行,但是我确实执行许多创建新列的操作。 典型的操作涉及使用条件逻辑将几个列合并到一个新的复合列中。例如,if var1 > 2 then newvar = 'A' elif var2 = 4 then newvar = 'B'。这些操作的结果是数据集中每个记录的新列。 最后,我想将这些新列添加到磁盘数据结构中。我将重复步骤2,使用交叉表和描述性统计数据探索数据,以寻找有趣的直观关系进行建模。 一个典型的项目文件通常约为1GB。文件组织成这样的方式,其中一行包含消费者数据记录。每条记录的每一行都有相同的列数。情况总是如此。 创建新列时,我会按行进行子集化是非常罕见的。但是,在创建报告或生成描述性统计信息时,对行进行子集化是很常见的。例如,我可能想为特定业务创建一个简单的频率,例如零售信用卡。为此,除了我要报告的任何列之外,我将只选择那些业务线=零售的记录。但是,在创建新列时,我将拉出所有数据行,而仅提取操作所需的列。 建模过程要求我分析每一列,寻找与某些结果变量有关的有趣关系,并创建描述这些关系的新复合列。我探索的列通常以小集合形式完成。例如,我将集中讨论一组20个仅涉及属性值的列,并观察它们与贷款违约的关系。一旦探索了这些列并创建了新的列,我便转到另一组列,例如大学学历,并重复该过程。我正在做的是创建候选变量,这些变量解释我的数据和某些结果之间的关系。在此过程的最后,我应用了一些学习技术,这些技术可以根据这些复合列创建方程。 我很少向数据集添加行。我几乎总是会创建新列(统计/机器学习术语中的变量或功能)。

23
在Python Pandas中向现有DataFrame添加新列
我有以下索引的DataFrame,其中的命名列和行不是连续数字: a b c d 2 0.671399 0.101208 -0.181532 0.241273 3 0.446172 -0.243316 0.051767 1.577318 5 0.614758 0.075793 -0.451460 -0.012493 我想'e'在现有数据框架中添加一个新列,并且不想更改数据框架中的任何内容(即,新列始终与DataFrame具有相同的长度)。 0 -0.335485 1 -1.166658 2 -0.385571 dtype: float64 如何e在上述示例中添加列?

14
如何获取大熊猫DataFrame的行数?
我正在尝试使用Pandas获取数据框df的行数,这是我的代码。 方法1: total_rows = df.count print total_rows +1 方法2: total_rows = df['First_columnn_label'].count print total_rows +1 这两个代码段都给我这个错误: TypeError:+不支持的操作数类型:“ instancemethod”和“ int” 我究竟做错了什么?
929 python  pandas  dataframe 

30
如何更改DataFrame列的顺序?
我有以下DataFrame(df): import numpy as np import pandas as pd df = pd.DataFrame(np.random.rand(10, 5)) 我通过分配添加了更多列: df['mean'] = df.mean(1) 如何将列mean移到最前面,即将其设置为第一列,而其他列的顺序保持不变?
875 python  pandas  dataframe 

25
向pandas DataFrame添加一行
我知道pandas旨在加载完全填充的内容,DataFrame但是我需要创建一个空的DataFrame然后逐行添加行。做这个的最好方式是什么 ? 我成功创建了一个空的DataFrame: res = DataFrame(columns=('lib', 'qty1', 'qty2')) 然后,我可以添加新行,并使用以下字段填充字段: res = res.set_value(len(res), 'qty1', 10.0) 它有效,但看起来很奇怪:-/(添加字符串值失败) 如何将新行添加到DataFrame(具有不同的列类型)?

9
更改Pandas中列的数据类型
我想将表示为列表列表的表转换为Pandas DataFrame。作为一个极其简化的示例: a = [['a', '1.2', '4.2'], ['b', '70', '0.03'], ['x', '5', '0']] df = pd.DataFrame(a) 将列转换为适当类型的最佳方法是什么,在这种情况下,将列2和3转换为浮点数?有没有一种方法可以在转换为DataFrame时指定类型?还是先创建DataFrame然后遍历各列以更改各列的类型更好?理想情况下,我想以动态方式执行此操作,因为可以有数百个列,并且我不想确切指定哪些列属于哪种类型。我可以保证的是,每一列都包含相同类型的值。

13
如何删除在特定列中的值为NaN的Pandas DataFrame行
我有这个DataFrame,只想要EPS列不是的记录NaN: >>> df STK_ID EPS cash STK_ID RPT_Date 601166 20111231 601166 NaN NaN 600036 20111231 600036 NaN 12 600016 20111231 600016 4.3 NaN 601009 20111231 601009 NaN NaN 601939 20111231 601939 2.5 NaN 000001 20111231 000001 NaN NaN ...例如df.drop(....)要得到这个结果的数据框: STK_ID EPS cash STK_ID RPT_Date 600016 20111231 600016 4.3 NaN 601939 …
749 python  pandas  dataframe  nan 

7
将pandas DataFrame写入CSV文件
我在熊猫中有一个数据框,我想将其写入CSV文件。我正在使用以下方法: df.to_csv('out.csv') 并得到错误: UnicodeEncodeError: 'ascii' codec can't encode character u'\u03b1' in position 20: ordinal not in range(128) 有什么方法可以轻松解决此问题(即我的数据框中有Unicode字符)吗?是否有一种方法可以使用例如“ to-tab”方法(我认为不存在)写入制表符分隔的文件而不是CSV?
713 python  csv  pandas  dataframe 

8
将字典列表转换为Pandas DataFrame
我有这样的词典列表: [{'points': 50, 'time': '5:00', 'year': 2010}, {'points': 25, 'time': '6:00', 'month': "february"}, {'points':90, 'time': '9:00', 'month': 'january'}, {'points_h1':20, 'month': 'june'}] 我想把它变成这样的大熊猫DataFrame: month points points_h1 time year 0 NaN 50 NaN 5:00 2010 1 february 25 NaN 6:00 NaN 2 january 90 NaN 9:00 NaN 3 june NaN 20 NaN …

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.