当前位置: 首页 > 知识库问答 >
问题:

如何将数据帧的特定列写入CSV?

施季
2023-03-14

我正在编写一个脚本,将带有标头的大. xlsx文件减少到CSV中,然后根据标头名称编写一个新的CSV文件,其中仅包含所需的列。

import pandas
import csv

df = pandas.read_csv('C:\\Python27\\Work\\spoofing.csv')

time = df["InviteTime (Oracle)"]
orignum = df["Orig Number"]
origip = df["Orig IP Address"]
destnum = df["Dest Number"]

df.to_csv('output.csv', header=[time,orignum,origip,destnum])

我得到的错误是最后一段代码,它说

ValueError: Writing 102 cols but got 4 aliases

我肯定我忽略了一些愚蠢的东西,但是我已经阅读了熊猫网站上的to_csv留档,我仍然不知所措。我知道我误用了to_csv参数,但我似乎无法理解留档。

任何帮助都是赞赏的,谢谢!

共有2个答案

澹台权
2023-03-14
column_list=["column_name1", "column_name2", "column_name3", "column_name4"]

#filter the dataframe beforehand
ds[column_list].to_csv('output.csv',index=False)

#or use columns arg
ds.to_csv('output.csv', columns = column_list,index=False)

为了只写入列值,我提供了index=False

邵璞
2023-03-14

选择特定列的方法如下-

header = ["InviteTime (Oracle)", "Orig Number", "Orig IP Address", "Dest Number"]
df.to_csv('output.csv', columns = header)
 类似资料:
  • 对于熊猫数据帧的特定列,该列实际上是转换成BCD的16位数据。我只想提取特定行的14-8位并转换为BCD。下面的公式适用于如下的小数据帧。 但当我申请时 对于688126行的较大数据帧,我得到一个错误,说 基数为2的int()的文本无效:“” 错误如下所示 ValueError Traceback(最近调用最后一次)在1 df.LO_TIME_0_J2_0---- C:\ProgramData\A

  • null 非常感谢任何指向文档或非常基本的示例的指针。

  • 如何将数据写入Kinesis中的特定分片? 博托医生说 分区键是Unicode字符串,每个键的最大长度限制为256个字符。MD5哈希函数用于将分区键映射到128位整数值,并使用碎片的哈希键范围将相关数据记录映射到碎片。您可以通过使用ExplicitHashKey参数显式指定哈希值来覆盖哈希分区键以确定碎片。 然而,我实际上如何做到这一点?

  • 我在pandas中有一个数据帧,我想把它写到CSV文件中。我使用的是: 并得到错误: 有没有什么方法可以很容易地解决这个问题(例如,我的数据帧中有unicode字符)?还有,有没有一种方法可以使用“to-tab”方法(我认为不存在)写入以制表符分隔的文件,而不是CSV?

  • 我有一个25列的数据帧和一个数组([2,4,8,10,11,12,13,14,17,18,19,20,21,22,23],dtype=int64)。我想从dataframe中选择一些特定的列,这些列的索引由数组的元素给出,并将它们存储在一个新的dataframe中(比如df1)。例如,新数据帧将有原始数据帧的第2、第4、第23列。

  • 我正面临这个问题,其中我有一个数据帧,比如: 和另一个数据帧: 现在我想要的是,将df2的列插入到df1的特定位置,这样df1就变成了(实际上一个新的df也会起作用): 我现在通过创建一个新的空df来实现这一点,然后迭代这两个df的列,然后依次添加每一列。这是低效的、丑陋的,并且违背了数据流的全部目的。所以我很想知道,这个已经有方法了吗?我不确定这样的问题是否已经在这里得到了回答,但我肯定我没有找