Python pandas:在groupby中输入错误

时间:2014-09-02 12:58:35

标签: python csv pandas

我在csv文件中读取如下内容:

import pandas as pd

out = "M:/transitions.csv"
transitions = pd.read_csv(out)

transitions = transitions.groupby('unique_pid')

以下是我的数据框:

In [11]: transitions.head()
Out[11]:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 5 entries, 0 to 4
Data columns (total 24 columns):
Unnamed: 0                5  non-null values
Unnamed: 0.1              5  non-null values
Unnamed: 0.1              5  non-null values
unique_pid                5  non-null values
Unnamed: 1                5  non-null values
unique_pid.1              5  non-null values
age                       5  non-null values
age2                      5  non-null values
year                      5  non-null values
Single-family house       5  non-null values
Duplex/ 2-family house    5  non-null values
Multifamily               5  non-null values
Mobile Home/ trailer      5  non-null values
Condo                     5  non-null values
Townhouse                 5  non-null values
Other                     5  non-null values
Don't know                5  non-null values
Refused                   5  non-null values
numrooms                  5  non-null values
famsize                   5  non-null values
moved                     5  non-null values
whymoved                  5  non-null values 
seniorh                   5  non-null values
inst                      5  non-null values
dtypes: float64(10), int64(14)

我收到以下错误:

TypeError: 'DataFrame' object is not callable

我检查了密钥&unique_pid&#39;在我的数据框中使用以下代码:

In [8]: print 'unique_pid' in transitions
True

所以它显然是一个有效的密钥。我以前用这种方式多次使用群组没有任何问题,所以我不确定出了什么问题。

1 个答案:

答案 0 :(得分:1)

这似乎是此SO question中问题的一个更微妙的版本。

基本上,虽然DF会愉快地导入具有多个同名列的数据,但groupby函数似乎会阻塞并死于该类型的数据帧。重命名重复的列名通常会将事情排序。对你的问题感到奇怪的是,列不完全相同,只是非常接近。不知道为什么那会是一个问题。但是,我看到未命名:0.1出现两次,这可能会搞砸了。当被迫处理遭受此重复的数据时,我建议使用合理且唯一的名称列表重命名所有列标题的初始步骤。您可以通过将新列标题字符串的列表分配给transitions.columns a la:

来实现
 transitions.columns  = ['Unnamed_A', 'Unnamed_B', 'Unnamed_C', 'unique_pid_A', 'Unnamed_D', 'unique_pid_B', 'age', 'age2', 'year', 'Single-family house', 'Duplex_2_family hou', 'Multifamily', 'Mobile Home/ trailer', 'Condo', 'Townhouse', 'Other', 'Don't know', 'Refused', 'numrooms', 'famsize', 'moved', 'whymoved', 'seniorh', 'inst']