我有下面的pymongo光标:
{'_id': ObjectId('61d7088333a0edbcbdc7332f'), 'TICKET_ID': {'0': '35592159', '1': '35592159', '2': '35592159', '3': '35592159', '4': '35592159'}, 'MOIS_VENTE': {'0': '10', '1': '10', '2': '10', '3': '10', '4': '10'}, 'PRIX_NET': {'0': '1.67', '1': '1.66', '2': '7.45', '3': '5.95', '4': '1.67'}, 'FAMILLE': {'0': 'HYGIENE', '1': 'HYGIENE', '2': 'SOINS DU VISAGE', '3': 'SOINS DU VISAGE', '4': 'HYGIENE'}, 'UNIVERS': {'0': 'HYG_DOUCHE JARDINMONDE', '1': 'HYG_DOUCHE JARDINMONDE', '2': 'VIS_CJOUR Jeunes Specifique', '3': 'VIS_DEMAQ AAAR', '4': 'HYG_DOUCHE JARDINMONDE'}, 'MAILLE': {'0': 'HYG_JDM', '1': 'HYG_JDM', '2': 'VIS_JEUNE_ET_LEVRE', '3': 'VIS_AAAR_DEMAQLOTION', '4': 'HYG_JDM'}, 'LIBELLE': {'0': 'GD JDM4 PAMPLEMOUSSE FL 200ML', '1': 'GD JDM4 PAMPLEMOUSSE FL 200ML', '2': 'CR JR PARF BIO.SPE AC.SENT.50ML', '3': 'EAU MICELLAIRE 3 THES FL200ML', '4': 'GD JDM4 TIARE FL 200ML'}, 'CLI_ID': {'0': '1490281', '1': '1490281', '2': '1490281', '3': '1490281', '4': '1490281'}}我想从上面的光标中获取以下数据:
TICKET_ID MOIS_VENTE PRIX_NET FAMILLE UNIVERS MAILLE LIBELLE CLI_ID
0 35592159 10 1.67 HYGIENE HYG_DOUCHE JARDINMONDE HYG_JDM GD JDM4 PAMPLEMOUSSE FL 200ML 1490281
1 35592159 10 1.66 HYGIENE HYG_DOUCHE JARDINMONDE HYG_JDM GD JDM4 PAMPLEMOUSSE FL 200ML 1490281
2 35592159 10 7.45 SOINS DU VISAGE VIS_CJOUR Jeunes Specifique VIS_JEUNE_ET_LEVRE CR JR PARF BIO.SPE AC.SENT.50ML 1490281
3 35592159 10 5.95 SOINS DU VISAGE VIS_DEMAQ AAAR VIS_AAAR_DEMAQLOTION EAU MICELLAIRE 3 THES FL200ML 1490281
4 35592159 10 1.67 HYGIENE HYG_DOUCHE JARDINMONDE HYG_JDM GD JDM4 TIARE FL 200ML 1490281我已经试过了,结果和我预期的不一样.
fields = ['TICKET_ID', 'MOIS_VENTE', 'PRIX_NET', 'FAMILLE', 'UNIVERS', 'MAILLE', 'LIBELLE','CLI_ID']
r = pd.DataFrame(list(cursor), columns = fields)
r

提前感谢您的建议!
发布于 2022-01-06 19:41:37
由于所有数据都在一条记录中,所以默认情况下使用find_one()返回dict。然后,你可以把dict传递给熊猫,而不需要更多的选择,你的数据就会像你想要的那样构建。
import pandas as pd
from pymongo import MongoClient
# Load some test data
db = MongoClient()['mydatabase']['mycollection']
db.insert_one({'TICKET_ID': {'0': '35592159', '1': '35592159', '2': '35592159', '3': '35592159', '4': '35592159'}, 'MOIS_VENTE': {'0': '10', '1': '10', '2': '10', '3': '10', '4': '10'}, 'PRIX_NET': {'0': '1.67', '1': '1.66', '2': '7.45', '3': '5.95', '4': '1.67'}, 'FAMILLE': {'0': 'HYGIENE', '1': 'HYGIENE', '2': 'SOINS DU VISAGE', '3': 'SOINS DU VISAGE', '4': 'HYGIENE'}, 'UNIVERS': {'0': 'HYG_DOUCHE JARDINMONDE', '1': 'HYG_DOUCHE JARDINMONDE', '2': 'VIS_CJOUR Jeunes Specifique', '3': 'VIS_DEMAQ AAAR', '4': 'HYG_DOUCHE JARDINMONDE'}, 'MAILLE': {'0': 'HYG_JDM', '1': 'HYG_JDM', '2': 'VIS_JEUNE_ET_LEVRE', '3': 'VIS_AAAR_DEMAQLOTION', '4': 'HYG_JDM'}, 'LIBELLE': {'0': 'GD JDM4 PAMPLEMOUSSE FL 200ML', '1': 'GD JDM4 PAMPLEMOUSSE FL 200ML', '2': 'CR JR PARF BIO.SPE AC.SENT.50ML', '3': 'EAU MICELLAIRE 3 THES FL200ML', '4': 'GD JDM4 TIARE FL 200ML'}, 'CLI_ID': {'0': '1490281', '1': '1490281', '2': '1490281', '3': '1490281', '4': '1490281'}})
# Fetch the data from MongoDB
data = db.find_one({}, {'_id': 0})
df = pd.DataFrame(data)
# Pretty up the output
pd.options.display.max_columns = None
pd.options.display.width = None
print(df)指纹:
TICKET_ID MOIS_VENTE PRIX_NET FAMILLE UNIVERS MAILLE LIBELLE CLI_ID
0 35592159 10 1.67 HYGIENE HYG_DOUCHE JARDINMONDE HYG_JDM GD JDM4 PAMPLEMOUSSE FL 200ML 1490281
1 35592159 10 1.66 HYGIENE HYG_DOUCHE JARDINMONDE HYG_JDM GD JDM4 PAMPLEMOUSSE FL 200ML 1490281
2 35592159 10 7.45 SOINS DU VISAGE VIS_CJOUR Jeunes Specifique VIS_JEUNE_ET_LEVRE CR JR PARF BIO.SPE AC.SENT.50ML 1490281
3 35592159 10 5.95 SOINS DU VISAGE VIS_DEMAQ AAAR VIS_AAAR_DEMAQLOTION EAU MICELLAIRE 3 THES FL200ML 1490281
4 35592159 10 1.67 HYGIENE HYG_DOUCHE JARDINMONDE HYG_JDM GD JDM4 TIARE FL 200ML 1490281https://stackoverflow.com/questions/70610901
复制相似问题