Форматирование выходных данных Pandas

Я импортирую торговый список и пытаюсь консолидировать его в файл позиции с суммарными количествами и средними ценами. Я группирую на основе (тикер, тип, истечение и удар). Два вопроса:

  1. В первом столбце вывод имеет индексную группу (тикер, тип, истечение и удар). Как я могу изменить это так, чтобы каждый индексный столбец выходил в свой собственный столбец, поэтому вывод csv форматируется так же, как и входные данные?
  2. В настоящее время я вынуждаю биржевые торги иметь значения («1»), потому что оставлять ячейки пустыми приведет к ошибке, но это добавляет плохие данные, поскольку «1» не имеет смысла. Есть ли способ сохранить «", не вызывая проблемы?

Dataframe:

    GM      stock   1           1       32      100
    AAPL    call    201612      120     3.5     1000
    AAPL    call    201612      120     3.25    1000
    AAPL    call    201611      120     2.5     2000
    AAPL    put     201612      115     2.5     500
    AAPL    stock   1            1      117     100

Код:

    import pandas as pd
    import numpy as np

    df = pd.read_csv(input_file, index_col=['ticker', 'type', 'expiration', 'strike'], names=['ticker', 'type', 'expiration', 'strike', 'price', 'quantity'])
    df_output = df.groupy(df.index).agg({'price':np.mean, 'quantity':np.sum})
    df_output.to_csv(output_file, sep=',')

Выход csv выходит в таком формате:

(ticker, type, expiration, strike), price, quantity

желаемый формат:

ticker, type, expiration, strike, price, quantity

python,pandas,format,export-to-csv,

0

Ответов: 1


0 принят

Для первого вопроса вы должны использовать groupby (df.index_col) вместо groupby (df.index)

Во-вторых, я не уверен, почему вы не можете сохранить «», это числовое?

Я высмеиваю некоторые данные, как показано ниже:

import pandas as pd                                                                                                 
import numpy as np                                                                                                  

d = [                                                                                                               
    {'ticker':'A', 'type':'M', 'strike':'','price':32},                                                             
    {'ticker':'B', 'type':'F', 'strike':100,'price':3.5},                                                           
    {'ticker':'C', 'type':'F', 'strike':'', 'price':2.5}                                                            

]                                                                                                                   
df = pd.DataFrame(d)                                                                                                
print df                                                                                                            

#dgroup = df.groupby(['ticker', 'type']).agg({'price':np.mean})                                                     
df.index_col = ['ticker', 'type', 'strike']                                                                         
dgroup = df.groupby(df.index_col).agg({'price':np.mean})   
#dgroup = df.groupby(df.index).agg({'price':np.mean})                                                 
print dgroup                                                                                                        
print type(dgroup)                                                                                                  
dgroup.to_csv('check.csv') 

вывод в check.csv:

ticker,type,strike,price                                                                                            
A,M,,32.0                                                                                                           
B,F,100,3.5                                                                                                         
C,F,,2.5  
питон, панды, формат, экспорт к CSV,
Похожие вопросы