pandas:to_csv有一个数字范围的命名列?

时间:2016-07-13 12:27:44

标签: python pandas

是否可以通过pd.to_csv为columns参数提供数值范围,即使标题用字符串标记?

示例数据框:

    January  February  March  April   May  June  July  August  September
0    67        43       48     58     82    102  118   114     82
1    45        27       16     12     65    89   112   100     35

如果我想写出前八列,我将不得不使用:

pd.to_csv('<filename>',usecols=['January, February, March, April, May, June, July, August'])

这显然占用了大量空间,并且对于具有超过一百列的数据帧而言是不切实际的。但我似乎无法使用一系列列或切片作为参数:

df.to_csv('filename.csv',columns=list(range(1,9)))

返回KeyError: 'None of [[1, 2, 3, 4, 5, 6, 7, 8]] are in the [columns]'

我确定这是一种简单的方法,我无法在SO上找到任何类似的问题......

2 个答案:

答案 0 :(得分:2)

您可以将数据框的列名称作为一个系列进行访问,然后对其进行切片,例如:

df.to_csv('filename.csv', usecols=df.columns[:8])

答案 1 :(得分:1)

替代解决方案:

df.ix[:, :7].to_csv('filename.csv')