【问题标题】:Extracting only values from bag of words仅从词袋中提取值
【发布时间】:2019-07-31 10:36:27
【问题描述】:

我编写了一些代码,它接受输入 csv 并使用 pandas 将其转换为 JSON。我需要一些格式化方面的帮助。

输入

Serial UID,Sample ID,For Serial Name,Rev Serial Name
14,10882401,0014F,0014R
18,10881462,0018F,0018R

电流输出

{
    "Serial": "0018F - 0018R",
    "Barcode UID": "18",
    "Sample ID": "10881462"
}

需要的输出

{
    "Serials": {
        "0018F - 0018R" : {
            "Barcode UID": "18",
            "Sample ID": "10881462"
            }
        {
        "0014F - 0014R" :{
            "Barcode UID": "14",
            "Sample ID": "10882401",
        }
    }
}
import pandas as pd
import csv
import json
from itertools import groupby 
from collections import OrderedDict

df = pd.read_csv(f'{my_name}.csv', dtype={
            "Barcode UID" : str,
            "Sample ID" : str,
            "For Serial Name" : str,
            "Rev Serial Name" : str
        })

results = []
temp_serials  = []
count = 0


for (barcode_uid, sample_id), bag in df.groupby(["Barcode UID", "Sample ID"]):
    contents_df = bag.drop(["Barcode UID", "Sample ID"], axis=1)
    subset = [OrderedDict(row) for i,row in contents_df.iterrows()]

    for i in subset:
        (key, val) = i.items()
        temp_barcodes.append("{} - {}".format(key[1],val[1]))

    results.append(OrderedDict([
        ("Barcodes", temp_barcodes[count]),
        ("Barcode UID", barcode_uid),
        ("Sample ID", sample_id)
        ]))
    count+=1



print(json.dumps(results, indent=4))

显示的实际/预期输出。只需要更好地格式化我的 json,对如何使用orderedDict 执行此操作感到困惑。

【问题讨论】:

    标签: python json pandas csv series


    【解决方案1】:

    您是否尝试过使用dict.values()?这是一个例子:

    d = {1:10, 2:20, 3:30}
    for value in d.values():
        print(value)
    # 10
    # 20
    # 30
    

    【讨论】:

    • 这到底是什么类型的答案?我在问一些复杂的东西,你教我如何打印值?
    猜你喜欢
    • 1970-01-01
    • 2013-03-09
    • 2019-03-15
    • 2013-03-08
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多