道歉,如果这是一个重复的问题,我不知道如何说出我的问题,我无法找到我正在寻找的确切内容。我对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
我想我的问题是为什么会发生这种情况,我怎样才能阻止它,是否有更好的方法来实现我的目标而不是熊猫?
答案 0 :(得分:0)
对于0.12代码有效,而grouped[person].values
是一个系列,其索引来自dataframe['I']
个不同的值和dataframe[person]
个对应项的数组。
结果数据帧然后包含一列数据类型对象,它存储在带有表示的csv中,省略了长数组。
首先,您的结果数据帧通常不能是正确的csv,因为不同的行可能具有不同的长度。如果组的长度不超过l
,您可以尝试pd.DataFrame(map(list, grouped[person].values))
之类的内容,使其成为包含l
列的DataFrame,其中None
代表缺少值(更短)行)。