为什么pandas不会将整个column.values打印到csv

时间:2013-12-18 07:14:56

标签: python csv pandas

道歉,如果这是一个重复的问题,我不知道如何说出我的问题,我无法找到我正在寻找的确切内容。我对python和编程有点新意。基本上,我有一个大型数据集,我试图按照每个主题(1到3)分组成行形式。它看起来像这样:

1 2 3 I
A A A 1
T T T 1
C C C 1
...
C C A 2
T T T 2
C C C 2
...
A A A 3
G G C 3
C C C 3
...

除了我的数据表更大。我用python将这个表加载到pandas中,使用了以下内容:

grouped=dataframe.groupby('I')
testframe=[]
testframe.append(grouped[person].values)
test_data=DataFrame(testframe)

我得到了一些看起来像我期望的东西,但当我将其打印成CSV时,它只会打印出来:

['G', 'T', 'T', ..., 'T', 'G', 'C']

如何让它打印所有值而不仅仅是一个子集?有没有更好的方法来实现我正在做的事情。整体输出是正确的,我只需要每个元素,而不是这个缩短版本。我怎样才能做到这一点?

-edit-为我的意思增加清晰度.. 例如:
len(test_data[0]['SomeGeneID']) output: 2571 and prints the truncated list len(test_data[0]['DifferentgeneID']) output: 879 and prints entire list
我想我的问题是为什么会发生这种情况,我怎样才能阻止它,是否有更好的方法来实现我的目标而不是熊猫?

1 个答案:

答案 0 :(得分:0)

对于0.12代码有效,而grouped[person].values是一个系列,其索引来自dataframe['I']个不同的值和dataframe[person]个对应项的数组。

结果数据帧然后包含一列数据类型对象,它存储在带有表示的csv中,省略了长数组。

首先,您的结果数据帧通常不能是正确的csv,因为不同的行可能具有不同的长度。如果组的长度不超过l,您可以尝试pd.DataFrame(map(list, grouped[person].values))之类的内容,使其成为包含l列的DataFrame,其中None代表缺少值(更短)行)。