пустой экспорт в Excel с использованием pandas - PullRequest
2 голосов
/ 09 июля 2020

Я запустил этот код, чтобы экспортировать результат словаря в Excel, но он вернул пустой. Что случилось, насколько я помню, раньше я мог экспортировать словарь в Excel, используя тот же код.

import pandas as pd

allJobs = {'A':[1,2,3],
           'B':[2,3,4],
           'C':[1,3],
           'D':[3,4]}

Jobs = ['A','C']

JobsWithNums = {}


for jobs in allJobs.keys():
    if jobs in Jobs:
        JobsWithNums[jobs] = allJobs[jobs]
        
print(JobsWithNums)
## output = {'A':[1,2,3],
##           'C':[1,3]}
df = pd.DataFrame(JobsWithNums, columns=['Jobs','Nums'])
df.to_excel("file.xlsx")


## excel output
##  Jobs    Nums
##  A       1
##  A       2
##  A       3
##  C       1
##  C       3

Ответы [ 2 ]

1 голос
/ 09 июля 2020

попробуйте:

for key, value in zip(allJobs.keys(), allJobs.values()):
    if key in Jobs:
        JobsWithNums[key] = value
df = pd.Series(JobsWithNums).rename_axis('Jobs').reset_index(name='Nums')
df = df.explode('Nums') #per OP's comment on this answer.
df.to_excel("file.xlsx")
df

    Jobs    Nums
0   A       1
0   A       2
0   A       3
1   C       1
1   C       3
0 голосов
/ 10 июля 2020

Мы можем использовать pandas для чтения в вашем словаре и выполнить базовое c изменение формы и фильтрацию, используя isin

df = pd.DataFrame.from_dict(allJobs,
                       orient='index')\
                       .stack()\
                       .reset_index(0)\
                       .rename(columns={'level_0' : 'Jobs',
                                          0 : 'Nums'})


df1 = df[df['Jobs'].isin(['A','C'])]

print(df1)

  Jobs  Nums
0    A   1.0
1    A   2.0
2    A   3.0
0    C   1.0
1    C   3.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...