Pandas CSV仅输出某一行中的数据(to_csv)

时间:2016-11-04 01:02:25

标签: python pandas

我只需要将pandas数据帧中的特定行输出到CSV文件。换句话说,输出需要只有行X中的数据,用逗号分隔的单行中没有其他内容。我遇到to_CSV的问题是我找不到一种方法来做数据;我总是收到一个列数的额外行。

data.to_csv(filename, index=False)

给出

0,1,2,3,4,5
X,Y,Z,A,B,C

第一行只是列数,是数据帧的一部分,而不是数据。我只需要数据。有没有办法简单地做到这一点,或者我是否需要打破pandas并在python中进一步操作数据?

注意:前面的示例只有一行数据,但是也可以选择行的语法。

3 个答案:

答案 0 :(得分:1)

你可以试试这个:

df = pd.DataFrame({'A': ['a','b','c','d','e','f'], 'B': [1,2,3,4,5,6]})
   A  B
0  a  1
1  b  2
2  c  3
3  d  4
4  e  5
5  f  6

您可以选择所需的行,在这种情况下,我选择index 1处的行:

df.iloc[1:2].to_csv('test.csv', index=False, header=False)

csv文件的输出如下所示(确保您使用header=False ):

b  2

答案 1 :(得分:0)

您可以使用此

data.to_csv(filename, index=False, header=False)

header表示:

  

header:布尔值或字符串列表,默认为True   写出列名。如果给出了字符串列表,则假定它是列名称的别名

您可以在pandas.DataFrame.to_csv

中找到更具体的信息

答案 2 :(得分:0)

您似乎正在寻找现有数据帧中的过滤数据并将其写入.csv文件。

为此你需要过滤你的数据。然后应用to_csv命令。

这是命令

df[df.index.isin([3,4])]

如果这是您的数据

>>> df
   A  B
0  X  1
1  Y  2
2  Z  3
3  A  4
4  B  5
5  C  6

然后这将是您预期的过滤内容。然后你可以在它上面申请to_csv

>>> df[df.index.isin([3,4])]
   A  B
3  A  4
4  B  5