【问题标题】:Row reading issue in csv containing html format data包含 html 格式数据的 csv 中的行读取问题
【发布时间】:2020-06-16 13:24:48
【问题描述】:

我有一个包含表格的 html 文件。表中的总行数约为 3500。我想读取和打印具有相同值的行。 html 数据的 PFA 图像。 我将数据转换为 csv,我可以在其中看到 html 格式的相同数据。 如图所示。我想将所有包含“MyData”的行打印并写入另一个 CSV,然后需要邮寄。 我尝试使用 Soupbeautiful 但无法获得结果。 我尝试使用 CSV 和 Pandas,但它没有返回预期的输出。 我的python代码如下;

import csv
import numpy as np
import pandas as pd
import sys
csv.field_size_limit(sys.maxsize)    
df = pd.read_csv('test.csv')    
data = print (df.iloc[0:5])

我尝试的另一个代码

search_string = "MyData"
 with open('test.csv') as f, open('test2.csv', 'w') as g:
    reader = csv.reader(f)
    next(reader, None) # discard the header
    writer = csv.writer(g)
    for row in reader:
        if row[2] == search_string:
            writer.writerow(row[:2])
            print(row)  

当我从 info_data 输入完整行时,它会给我那个特定的行,而不是字符串“MyData”存在的其他行。 谢谢!

【问题讨论】:

  • print() 总是返回None 所以代码data = print (df.iloc[0:5]) 表示data = None。你需要data = df.iloc[0:5]
  • df[ df["Info_data"].str.contains("MyData") ].to_csf("output.csv") ?但前提是你在Info_data 中有字符串,而不是用字符串列出。
  • 将数据作为文本 - 或者更好地使用数据创建最少的工作代码,以便我们可以运行它。
  • 尝试if search_string in row[2]:,因为您目前正在寻找完全匹配

标签: python pandas numpy csv data-science


【解决方案1】:

您当前正在测试该条目是否与您的搜索字符串完全匹配。该条目包含一个 JSON 字符串,因此您可以使用 in 来查看它是否包含 search_string 而不是与其完全匹配,例如:

search_string = "MyData"

with open('test.csv') as f, open('test2.csv', 'w') as g:
    reader = csv.reader(f)
    next(reader, None) # discard the header
    writer = csv.writer(g)

    for row in reader:
        if search_string in row[2]:
            writer.writerow(row[:2])
            print(row)  

然后您需要添加代码来进一步解码 JSON 数据。

【讨论】:

    猜你喜欢
    • 2018-08-01
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    相关资源
    最近更新 更多