Pandas DataFrame: необычное поведение с json.dumps (дополнительные двойные кавычки) - PullRequest
1 голос
/ 23 сентября 2019

У меня есть этот Pandas DataFrame с двумя столбцами label и time

>>> df = pd.DataFrame([{'a':{'tier':'one','app':'frontend'},'time':100}])
>>> df
                                        a  time
0  {u'tier': u'one', u'app': u'frontend'}   100

В столбце label хранится диктовка.

Когда я печатаю фрейм данных, я получаю ожидаемые значения строки

>>> print(df.to_csv(index=False,header=False,sep='|'))
{'tier': 'one', 'app': 'frontend'}|100

Я хотел преобразовать эти значения JSON строки в строку, и поэтому я сделал

>>> df['a'] = df['a'].apply(lambda x: json.dumps(x))
>>> df
                                    a  time
0  {"tier": "one", "app": "frontend"}   100

Но с df.to_csv () я получаю эту проблему, где я получаю двойные кавычки два раза

>>> print(df.to_csv(index=False,header=False,sep='|'))
"{""tier"": ""one"", ""app"": ""frontend""}"|100

Когда ожидаемый результат должен быть

{"tier": "one", "app": "frontend"}|100

Это поведение кажется очень необычным.Я что-то здесь не так?

1 Ответ

1 голос
/ 23 сентября 2019

Используйте quoting = csv.QUOTE_NONE в to_csv функции, как:

import csv
print(df.to_csv(index=False,header=False,sep='|',quoting=csv.QUOTE_NONE))

Для получения более подробной информации читайте документы .

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