Как исправить ошибку ‘dict’ объект не имеет атрибута ‘to_csv’

#python

#python

Вопрос:

Я запустил этот код, но пытаюсь сохранить его в csv-файл, но я получил сообщение об ошибке.

 import pandas as pd
from blocklib import generate_candidate_blocks
from blocklib import generate_blocks
from blocklib.evaluation import assess_blocks_2party
dd = pd.read_csv('file path\page.csv')

blocking_config = {
"type": "p-sig",
"version": 1,
"config": {
    "blocking-features": [1, 2],
#         "record-id-col": 0,
    "filter": {
        "type": "ratio",
        "max": 0.02,
        "min": 0.00,
    },
    "blocking-filter": {
        "type": "bloom filter",
        "number-hash-functions": 4,
        "bf-len": 2048,
    },
    "signatureSpecs": [
        [
             {"type": "characters-at", "config": {"pos": [0]}, "feature": 1},
             {"type": "characters-at", "config": {"pos": [0]}, "feature": 2},
        ],
        [
            {"type": "metaphone", "feature": 1},
            {"type": "metaphone", "feature": 2},
        ]
    ]
}
}

pp = dd.to_dict(orient='split')['data']
print("Example PII", pp[0])
block_obj = generate_candidate_blocks(pp, blocking_config)
print(block_obj.state)
list(block_obj.blocks.keys())[0]

ss = pd.read_csv('file path\page2.csv')
hh = ss.to_dict(orient='split')['data']
block_obj2 = generate_candidate_blocks(hh, blocking_config)
print(block_obj2.state)
print(list(block_obj2.blocks.keys())[0])
print(list(block_obj2.blocks.values())[1])

filtered_blocks1, filtered_blocks2 = generate_blocks([block_obj, block_obj2], K=2)
print('page: {} out of {} blocks are in common'.format(len(filtered_blocks1), len(block_obj.blocks)))
print('page2:   {} out of {} blocks are in common'.format(len(filtered_blocks2), len(block_obj2.blocks)))
  

Я пытался использовать функцию ‘to_csv’, но выдает ошибку

    filtered_blocks1.to_csv('file path\file1.csv' , index = True)
  

Ошибка здесь:

     AttributeError: 'dict' object has no attribute 'to_csv'
  

Вывод осуществляется с помощью двух файлов csv. Как сохранить полученный результат в файл csv?

Комментарии:

1. Преобразуйте этот словарь filtered_blocks1 в dataframe, затем вы можете записать в формате csv. pd.DataFrame.from_dict(data)

Ответ №1:

filtered_blocks1 это словарь. для использования to_csv в качестве

 filtered_blocks1.to_csv('file path\file1.csv' , index = True)
  

filtered_blocks1 должен быть фрейм данных. Обратитесь к документации

вы должны сделать что-то вроде:

 pd.DataFrame.from_dict(filtered_blocks1)
pd.to_csv('file path\file1.csv' , index = True)
  

Комментарии:

1. Я пробовал эту команду, но она хранит все данные всего в двух строках: dd = pd.DataFrame.from_dict([filtered_blocks3], orient='columns', dtype=None, columns=None) dd.to_csv('file path\file1.csv' , index = True)