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

在csv格式文件的n行后的列中写入?

令狐泓
2023-03-14

我是python新手。我在使用csv文件时遇到问题。这是一个有12行标题的文件,在开始数据之后。我必须从列中读取一些数据(这是可以的),在详细说明之后,我必须向同一文件中添加一列,每行中都有一个值,但第一列中没有任何id,该列必须从第13行开始,而不是从第一行开始。

我试过用熊猫图书馆但不管用

df = pd.read_csv("./1540476113.gt.tie")
df["package"] = pd.Series(packages)
df.to_csv("./1540476113.gt.tie", sep = "\t")

其中,package是列的名称(但我也知道索引),package是字符串数组(我必须编写的元素)。这段代码可以工作,但从第一行开始添加(我不知道如何设置偏移量),并将第一列中的索引(非所需)和每个元素前面的字符“添加到文件中”。sep是每列的分隔符。

示例输入数据:

# TIE output version: 1.0 (text format)
# generated by: . -a ndping_1.0 -r /home/giuseppe/Scrivania/gruppo30/1540476113/traffic.pcap

# Working Mode: off-line
# Session Type: biflow
# 1 plugins enabled: ndping

# begin trace interval: 1540476116.42434

# begin TIE Table
# id    src_ip          dst_ip          proto   sport   dport   dwpkts  uppkts  dwbytes upbytes t_start                 t_last                  app_id  sub_id  app_details     confidence
17      192.168.20.105  216.58.205.42   6       50854   443     8       9       1507    1728    1540476136.698920       1540476136.879543       501     0       Google  100
26      192.168.20.105  151.101.66.202  6       40107   443     15      18      5874    1882    1540476194.196948       1540476204.641949       501     0       SSL_with_certificate    100
27      192.168.20.105  31.13.90.2      6       48133   443     10      15      4991    1598    1540476194.218949       1540476196.358946       501     0       Facebook        100

样本输出数据:

# TIE output version: 1.0 (text format)
# generated by: . -a ndping_1.0 -r           /home/giuseppe/Scrivania/gruppo30/1540476113/traffic.pcap 

# Working Mode: off-line
# Session Type: biflow 
# 1 plugins enabled: ndping 

# begin trace interval: 1540476116.42434

# begin TIE Table
# id    src_ip      dst_ip      proto   sport   dport   dwpkts  uppkts  dwbytes upbytes t_start         t_last          app_id  sub_id  app_details confidence  package
17  192.168.20.105  216.58.205.42   6   50854   443 8   9   1507    1728    1540476136.698920   1540476136.879543   501 0   Google  100  N/C    
26  192.168.20.105  151.101.66.202  6   40107   443 15  18  5874    1882    1540476194.196948   1540476204.641949   501 0   SSL_with_certificate    100 com.joelapenna.foursquared
27  192.168.20.105  31.13.90.2  6   48133   443 10  15  4991    1598    1540476194.218949   1540476196.358946   501 0   Facebook    100 com.joelapenna.foursquared  
38  192.168.20.105  13.32.71.69 6   52108   443 9   12  5297    2062    1540476195.492946   1540476308.604998   501 0   SSL_with_certificate    100 com.joelapenna.foursquared
0   34.246.212.92   192.168.20.105  6   443 37981   3   2   187 98  1540476116.042434   1540476189.868844   0   0   Other TCP   0   N/C
29  192.168.20.105  13.32.123.222   6   36481   443 11  15  6638    1914    1540476194.376945   1540476308.572998   501 0   SSL_with_certificate    100 com.joelapenna.foursquared  
31  192.168.20.105  8.8.8.8 17  1219    53  1   1   253 68  1540476194.898945   1540476194.931198   501 0   DNS 100

我不关心alinemen,每列的分隔符都是'\t'。

共有1个答案

乐正宜人
2023-03-14

您可以通过向read_csv传递一些参数来跳转到数据

df = pd.read_csv("./1540476113.gt.tie", header=None, skiprows=12)
df["package"] = pd.Series(packages)
df.to_csv("./1540476113.gt.tie", sep = "\t")

然后显式命名您的列:

df.columns = [col_names]

如果第13行是包含所需列名的标题行,则不要传递头=无参数。

在这里的文档中查看更多信息。

 类似资料:
  • 问题内容: 我有一个列表列表,我想将其写入csv文件中。示例列表: data [0]应该是列名,其他都是行数据 请给我建议一种方法。 问题答案: 这与模块无关紧要: 您已经具有标题作为第一行;您可以使用该方法一次性写入所有行。真的,这就是全部。

  • 问题内容: 我有一长串以下形式的清单- 即列表中的值是不同的类型-浮点数,整数,字符串。如何将其写入csv文件,以便输出的csv文件看起来像 问题答案: Python的内置CSV模块可以轻松处理此问题: 假设您的问题中的清单定义为。您可以通过各种可选参数来调整输出CSV的确切格式,如上面链接的库参考页中所述。 Python 3更新

  • 问题内容: 我有以下代码: 在控制台中,使用System.out.println(line)输出的代码为我提供了正确的输出。但是,当我打开CSV文件时,它似乎是反向写入的。Excel首先抱怨行数。但是,仅显示原始数据集的最后一行。数据集(以一种低效的方式进行了预处理)包含1000多个行。因此,我不能简单地附加每个条目。 有更好的方法吗? 提示和技巧非常受欢迎。更进一步,我尝试了一些编写器:-CSV

  • 如何才能从pandas数据帧中只写入前N行或从P行到Q行到csv而不首先对df进行子化?由于内存问题,我无法对要导出的数据进行子集。 我正在考虑一个函数,它逐行写入csv。 谢谢你

  • 问题内容: 我正在努力将列表字典写入.csv文件。 这是我的字典的样子: 我希望.csv文件看起来像: 首先,我写标题: 到目前为止很好…但是,我的问题是我不知道如何将一个列表分配给相应的列。例如: 将随机填充列。另一个问题是,我必须手动填写键,并且不能将其用于具有4个键的另一本词典。 问题答案: 如果您不关心列的顺序(因为字典是无序的),则可以简单地使用: 结果: 如果您确实关心订单,则需要对键

  • 问题内容: 我有以下格式的数据: 我想将其写入CSV。下面是我的代码: 方法“ writeNext”仅允许使用String []作为参数。当我尝试使用Object []将’ArrayList each’强制转换为String []时,如下所示,我遇到了运行时类型强制转换错误: 谁能告诉我我要去哪里错了? 问题答案: 你不能投入,因为可以包含狗,猫,整型等。 您应该使用重载的List#toArray