【问题标题】:Python/ Pandas CSV Parsing For Form ResponsesPython/ Pandas CSV 解析表单响应
【发布时间】:2020-09-21 20:53:48
【问题描述】:

我使用 JotForm 可配置列表小部件收集数据,但在解析或读取数据时遇到问题,因为记录数 > 2K

可配置的字段名称是人员详细信息,列表中有这些选项可作为输入,

Name Gender Date of Birth Govt. ID Covid Test Covid Result Type of Follow Up Qualification Medical History Disabilities Employment Status Individual Requirement

Excel 文件的快照,Configurable List Submissions

我希望根据 snap 将数据作为一列的 excel 或 csv 工作表导出到不同的列中,并将上述列表选项作为每列的标题

我对 python、pandas 或数据解析非常陌生,这是一个非常重要的社会福利项目,可以在 COVID 危机 期间帮助人们,所以任何帮助都是很高兴感谢:)

【问题讨论】:

标签: python python-3.x pandas csv parsing


【解决方案1】:

在每一行中都有标签并不是像read_csv 这样的标准pandas 工具本机处理的。我会将这些行作为文本字符串进行迭代,然后一次构建数据框。为此,我们将每一行放入pd.Series({"Column1": "data", "Column2": "data"...}) 的形式中,然后从这些对象的列表中构建一个数据框。

import pandas as pd
##Sample Data
data = ["Column1: Data1, Column2: Data2, Column3: Data3", "Column1: Data4, Column2: Data5, Column3: Data6"]

rows = []
##Iterate over rows
for line in data:
    ##split along commas
    split1 = line.split(',')
    ##
    split2 = [s.split(': ') for s in split1]

现在split2 一行看起来像这样:[['Column1', ' Data1'], [' Column2', ' Data2'], [' Column3', ' data3']]

    ##make a series
    row = pd.Series({item[0]: item[1] for item in split2})
    rows.append(row)
df = pd.DataFrame(rows)

现在df 看起来像这样:

  Column1  Column2  Column3
0   Data1    Data2    Data3
1   Data4    Data5    Data6

你可以用df.to_csv("filename.csv")把它保存成这种格式,然后用excel之类的工具打开。

【讨论】:

  • 谢谢雅各布!会试试这个,让你可以更新:)
猜你喜欢
  • 2016-03-12
  • 1970-01-01
  • 1970-01-01
  • 2022-07-04
  • 1970-01-01
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多