У меня есть датафрейм, каждая ячейка сохраняет словарь.Прежде чем экспортировать фрейм данных, я мог бы назвать каждую ячейку как отдельный фрейм данных.
Однако после сохранения фрейма данных в формате csv и повторного открытия этой ячейки каждая ячейка стала строкой, поэтому я больше не мог превращать вызываемую ячейку в фрейм данных.
Вывод должен выглядеть следующим образом
После сохранения фрейма данных в виде csv словарь стал строкой
Я был удивленузнать после моего исследования Stackoverflow, было не так много людей, испытывающих ту же проблему, что и у меня.Я задавался вопросом, является ли моя практика неправильной.Я нашел только два сообщения, связанные с моей проблемой.Вот один из них ( объекты dict, преобразующие в строку при чтении из CSV в dataframe pandas python ).
Я в основном пробовал json, ast.literal_eval и yaml, но ни один из них не смог решить мою проблему.
Это первая часть моего кода (я создал этот четыре списка для хранения своих данных, которые я вызвал из API)
tickers4 = []
last_1st_bs4 = []
last_2nd_bs4 = []
last_3rd_bs4 = []
for i in range(len(tickers)):
try:
ticker = tickers.loc[i, 'ticker']
ann_yr = 2018
yr_1st = intrinio.financials_period(ticker, str(ann_yr-1), fiscal_period='FY', statement='balance_sheet')
yr_2nd = intrinio.financials_period(ticker, str(ann_yr-2), fiscal_period='FY', statement='balance_sheet')
yr_3rd = intrinio.financials_period(ticker, str(ann_yr-3), fiscal_period='FY', statement='balance_sheet')
tickers4.append(ticker)
last_1st_bs4.append(yr_1st)
last_2nd_bs4.append(yr_2nd)
last_3rd_bs4.append(yr_3rd)
print('{} Feeding data {}'.format(i, ticker))
except:
tickers4.append(ticker)
last_1st_bs4.append(0)
last_2nd_bs4.append(0)
last_3rd_bs4.append(0)
print('{} Error {}'.format(i, ticker))
Вторая часть: я поместил их в кадр данных исохранено как CSV
BS = pd.DataFrame()
BS['ticker'] = tickers4
BS['BS_2017'] = last_1st_bs4
BS['BS_2016'] = last_2nd_bs4
BS['BS_2015'] = last_3rd_bs4
BS.to_csv('Balance_Sheet_2015_2017.csv')
Теперь мне нужно прочитать этот CSV в другой записной книжке
BS = pd.read_csv('./Balance_Sheet_2015_2017.csv', index_col=0)
BS.loc[9, 'BS_2017']
вот результат, который я получил: ' cashandequivalents shortterminvestments notereceivable \\\nyear \n2017 2.028900e+10 5.389200e+10 1.779900e+10 \n\n accountsreceivable netinventory othercurrentassets \\\nyear \n2017 1.787400e+10 4.855000e+09 1.393600e+10 \n\n totalcurrentassets netppe longterminvestments \\\nyear \n2017 1.286450e+11 3.378300e+10 1.947140e+11 \n\n othernoncurrentassets ... \\\nyear ... \n2017 1.817700e+10 ... \n\n commitmentsandcontingencies commonequity retainedearnings \\\nyear \n2017 0.0 3.586700e+10 9.833000e+10 \n\n aoci totalcommonequity totalequity \\\nyear \n2017 -150000000.0 1.340470e+11 1.340470e+11 \n\n totalequityandnoncontrollinginterests totalliabilitiesandequity \\\nyear \n2017 1.340470e+11 3.753190e+11 \n\n currentdeferredrevenue noncurrentdeferredrevenue \nyear \n2017 7.548000e+09 2.836000e+09 \n\n[1 rows x 30 columns]'
Спасибо за вашПомогите.