Как преобразовать датафрейм в CSV? - PullRequest
0 голосов
/ 12 мая 2019

У меня есть файл Json, и я преобразовал его в словарь, затем извлекаю из него некоторые данные, которые являются именами классов.

Это мой код

import pandas as pd
import json
df = pd.read_json("/content/Test1.json")
with open('/content/Test1.json') as handle:
    dictdump = json.loads(handle.read())
for elem in dictdump : 
    print(elem['fullyQualifiedName'])

, затем он возвращает этикоторые являются именами классов:

android.support.v4.app.Watson
android.support.v4.app.Watson.OnCreateOptionsMenuListener
android.support.v4.app.Watson.OnPrepareOptionsMenuListener
android.support.v4.app.Watson.OnOptionsItemSelectedListener
com.actionbarsherlock.ActionBarSherlock
com.actionbarsherlock.ActionBarSherlock.OnCreatePanelMenuListener
com.actionbarsherlock.ActionBarSherlock.OnCreateOptionsMenuListener
com.actionbarsherlock.ActionBarSherlock.OnMenuItemSelectedListener
com.actionbarsherlock.ActionBarSherlock.OnOptionsItemSelectedListener
com.actionbarsherlock.ActionBarSherlock.OnPreparePanelListener

Я хочу вставить эти данные в файл CSV. Каждое имя классов в строке любое решение, пожалуйста

Ответы [ 2 ]

0 голосов
/ 12 мая 2019

Это способ, которым вы можете достичь этого:

import pandas as pd

import json

classDF = pd.DataFrame(columns = ['NameOfClass', 'Type_of_smells'])

with open('/content/Test1.json') as handle:
    dictdump = json.loads(handle.read())

for elem in dictdump :     
    class_dict = {'NameOfClass': elem['fullyQualifiedName'], 'Type_of_smells': elem['WhatEverYourJsonNameIs']}
    class_name = pd.DataFrame.from_dict(class_dict, orient='index')
    class_name = class_name.transpose()
    classDF = pd.concat([classDF, class_name])

classDF.to_csv('/path/class_name.csv', mode='a', header=True)
0 голосов
/ 12 мая 2019

Когда вы читаете json в df, если ваш фрейм данных выглядит примерно так:

    fullyQualifiedName
0   android.support.v4.app.Watson
1   android.support.v4.app.Watson.OnCreateOptionsM...
2   android.support.v4.app.Watson.OnPrepareOptions...
3   android.support.v4.app.Watson.OnOptionsItemSel...
4   com.actionbarsherlock.ActionBarSherlock
5   com.actionbarsherlock.ActionBarSherlock.OnCrea...
6   com.actionbarsherlock.ActionBarSherlock.OnCrea...
7   com.actionbarsherlock.ActionBarSherlock.OnMenu...
8   com.actionbarsherlock.ActionBarSherlock.OnOpti...
9   com.actionbarsherlock.ActionBarSherlock.OnPrep...

Тогда вы можете просто сделать:

df.to_csv("test.csv",columns=["fullyQualifiedName"], index=False,header=False)

Результат (содержимое файла csv):

android.support.v4.app.Watson
android.support.v4.app.Watson.OnCreateOptionsMenuListener
android.support.v4.app.Watson.OnPrepareOptionsMenuListener
android.support.v4.app.Watson.OnOptionsItemSelectedListener
com.actionbarsherlock.ActionBarSherlock
com.actionbarsherlock.ActionBarSherlock.OnCreatePanelMenuListener
com.actionbarsherlock.ActionBarSherlock.OnCreateOptionsMenuListener
com.actionbarsherlock.ActionBarSherlock.OnMenuItemSelectedListener
com.actionbarsherlock.ActionBarSherlock.OnOptionsItemSelectedListener
com.actionbarsherlock.ActionBarSherlock.OnPreparePanelListener

Набор

header=True

если вы хотите, чтобы имя столбца также было в csv в качестве заголовка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...