当删除DataFrame中的一列时,我使用: del df['column_name'] 这工作很好。 为什么我不能使用: del df.column_name 正如你可以访问列/系列作为df.column_name ,我期望这个工作。
我正在处理一个大的csv文件,最后一列的下一列有一串文本,我想通过一个特定的分隔符来分割。 我想知道是否有一个简单的方法来做到这一点使用pandas或Python? CustNum CustomerName ItemQty Item Seatblocks ItemExt 32363 McCartney, Paul 3 F04 2:218:10:4,6 60 31316 Lennon, John 25 F01 1:13:36:1,12 1:13:37:1,13 300 我想分割的空间(' ') ,然后冒号(':')在Seatblocks列,但每个单元格会导致不同数量的列。 我有一个函数重新排列列,所以Seatblocks列是在工作表的末尾,但我不知道该怎么做。 我可以在excel中使用内置的text-to-columns函数和一个快速macros来实现,但是我的数据集有太多的excel处理logging。 最终,我想logging约翰·列侬的logging,并创build多行,每个座位的信息在一个单独的行上。
我如何实现SQL的IN和NOT IN的等价物? 我有一个所需值的列表。 这是一个场景: df = pd.DataFrame({'countries':['US','UK','Germany','China']}) countries = ['UK','China'] # pseudo-code: df[df['countries'] not in countries] 我目前的做法如下: df = pd.DataFrame({'countries':['US','UK','Germany','China']}) countries = pd.DataFrame({'countries':['UK','China'], 'matched':True}) # IN df.merge(countries,how='inner',on='countries') # NOT IN not_in = df.merge(countries,how='left',on='countries') not_in = not_in[pd.isnull(not_in['matched'])] 但是,这似乎是一个可怕的kludge。 任何人都可以改进吗?
有问题过滤我的结果数据框与条件。 我想我的结果df提取所有列高于0.25和低于-0.25的列var值。 下面的逻辑给了我一个模棱两可的真值,但是当我在两个单独的操作中分割这个过滤时,它是有效的。 这里发生了什么? 不知道在哪里使用build议的a.empty(),a.bool(),a.item(),a.any()或a.all()。 result = result[(result['var']>0.25) or (result['var']<-0.25)]
如何将numpy.datetime64对象转换为datetime.datetime (或Timestamp )? 在下面的代码中,我创build了一个datetime,timestamp和datetime64对象。 import datetime import numpy as np import pandas as pd dt = datetime.datetime(2012, 5, 1) # A strange way to extract a Timestamp object, there's surely a better way? ts = pd.DatetimeIndex([dt])[0] dt64 = np.datetime64(dt) In [7]: dt Out[7]: datetime.datetime(2012, 5, 1, 0, 0) In [8]: ts Out[8]: <Timestamp: 2012-05-01 00:00:00> […]
我用下面的方式用pandas来写excel文件: import pandas writer = pandas.ExcelWriter('Masterfile.xlsx') data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2']) writer.save() Masterfile.xlsx已经由多个不同的选项卡组成。 pandas正确写入“主”表,不幸的是,它也删除所有其他标签。
我有一个数据表使用pandas和列标签,我需要编辑,以取代原来的列标签。 我想要更改数据表A中原始列名称所在的列名称: ['$a', '$b', '$c', '$d', '$e'] 至 ['a', 'b', 'c', 'd', 'e']. 我有编辑的列名称存储在列表中,但我不知道如何replace列名称。
如何从一个DataFrame中select一些基于pandas某些列中的值的行? 在SQL中,我将使用: select * from table where colume_name = some_value. 我试图看pandas的文件,但没有立即find答案。
我有一个Pythonpandas数据框rpt : rpt <class 'pandas.core.frame.DataFrame'> MultiIndex: 47518 entries, ('000002', '20120331') to ('603366', '20091231') Data columns: STK_ID 47518 non-null values STK_Name 47518 non-null values RPT_Date 47518 non-null values sales 47518 non-null values 我可以像这样筛选库存号为'600809'的行: rpt[rpt['STK_ID'] == '600809'] <class 'pandas.core.frame.DataFrame'> MultiIndex: 25 entries, ('600809', '20120331') to ('600809', '20060331') Data columns: STK_ID 25 non-null values STK_Name 25 non-null values […]
在学习pandas的同时,我试图在这个问题上解答好几个月。 我使用SAS进行日常工作,这对我们来说是非常棒的支持。 然而,由于其他原因,SAS作为一款软件是非常糟糕的。 有一天,我希望用python和pandas来替代我的SAS,但是我目前缺乏大型数据集的核心外工作stream程。 我不是在谈论需要分布式networking的“大数据”,而是文件太大而不适合内存,但又足够小以适应硬盘驱动器。 我的第一个想法是使用HDFStore在磁盘上保存大型数据集,并只将需要的部分HDFStore到数据HDFStore进行分析。 其他人则提到MongoDB是一个更易于使用的替代scheme。 我的问题是这样的: 什么是一些最佳实践工作stream程来完成以下工作: 将平面文件加载到永久性的磁盘数据库结构中 查询该数据库以检索要送入pandas数据结构的数据 在pandas中操作片断之后更新数据库 真实世界的例子会受到大家的赞赏,尤其是那些使用“大数据”的pandas的人。 编辑 – 我如何工作的例子: 迭代地导入一个大的平面文件并将其存储在一个永久性的磁盘数据库结构中。 这些文件通常太大而不适合内存。 为了使用pandas,我想读取这些数据的子集(通常只有几列),可以适应内存。 我会通过对所选列进行各种操作来创build新列。 然后我必须将这些新列添加到数据库结构中。 我正在试图find执行这些步骤的最佳实践方式。 阅读有关pandas和pytables的链接似乎是追加一个新的列可能是一个问题。 编辑 – 特别回应杰夫的问题: 我正在build立消费者信用风险模型。 数据种类包括电话,SSN和地址特征; 财产价值; 像犯罪logging,破产等贬义的信息…我每天使用的数据集平均有近1000到2000个混合数据types的字段:数字和字符数据的连续variables,名义variables和有序variables。 我很less追加行,但是我执行许多操作来创build新的列。 典型的操作涉及将使用条件逻辑的多个列组合成新的复合列。 例如, if var1 > 2 then newvar = 'A' elif var2 = 4 then newvar = 'B' 。 这些操作的结果是我的数据集中每个logging的新列。 最后,我想将这些新列添加到磁盘数据结构中。 我会重复第2步,用交叉表和描述性统计数据来探索数据,试图find有趣的,直观的关系模型。 一个典型的项目文件通常是大约1GB。 文件被组织成一行,其中包含消费者数据的logging。 […]