【问题标题】:why does pandas not print entire column.values to csv为什么熊猫不将整个 column.values 打印到 csv
【发布时间】:2013-12-18 07:14:56
【问题描述】:

抱歉,如果这是一个重复的问题,我不知道如何表达我的问题,并且我无法准确找到我正在寻找的内容。我对python和编程有点陌生。基本上,我有一个大型数据集,我试图将每个 ID 的每个主题(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将此表加载到熊猫中,使用以下内容:

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
我想我的问题是为什么会发生这种情况,我该如何预防,有没有比 pandas 更好的方法来实现我的目标?

【问题讨论】:

  • 你用什么方法将它“打印到 CSV”?
  • 在 0.13 中你将无法访问 groupby values,我不确定你认为它是什么......
  • 我使用 test_data.to_csv('whatever.csv') 并查看单元格,基本上具有小于 1000 个值的 ID 号倾向于完全打印,但不会打印较大的。我不太确定我在做什么,你是什么意思访问 groupby 值?我在我的测试框架列表中看到它们,它就像 0: N,N,N...
  • @user2963701 这个位:grouped[person].values 在 0.13rc 中提高。
  • @alko 是的,它“工作”,但没有记录/不受支持,升级后将无法工作 - 在未来的任何时间!

标签: python csv pandas


【解决方案1】:

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

生成的数据框随后包含一列数据类型对象,并将其存储在 csv 中,其表示形式省略了长数组。

准确地说,您生成的数据框通常不能是正确的 csv,因为不同的行可能有不同的长度。如果组的长度不大于l,您可以尝试使用pd.DataFrame(map(list, grouped[person].values)) 之类的方法,使其成为具有l 列的DataFrame,None 用于缺失值(较短的行)。

【讨论】:

  • 感谢您的意见。我明天早上试试,然后告诉你!
  • 我认为你不应该提倡人们使用grouped[person].values...为什么不直接使用dataframe[person].values
  • @AndyHayden 猜你是对的。可能,如果可以的话,你最好发布一个正确的答案,我会删除这个。 atm 很忙,没有时间详细说明正确的方法。
  • 如果我使用了 dataframe[person].values,我也会得到截断的数组,但它会返回整列的截断数组,而不是最终目标的每个基因 ID。
  • 感谢您的输入,但我最终使用 awk 来完成这项壮举!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多