/ / code para regenerar um dataframe em pandas para perguntas sobre Stackoverflow / SO - python, pandas, dataframe

código para regenerar um dataframe em pandas para perguntas sobre Stackoverflow / SO - python, pandas, dataframe

Digamos que eu tenha o seguinte dataframe. Eu quero fazer uma pergunta no Stackoverflow / SO sobre um tipo de manipulação que estou tentando fazer. Agora, para ajudar os usuários em SO, é geralmente uma boa prática fornecer o código para gerar novamente o dataframe em questão.

                 sunlight
sum    count
city    date
SFO 2014-05-31  -1805.04    31
SFO 2014-06-30  -579.52     30
SFO 2014-07-31  1025.51     31
SFO 2014-08-31  -705.18     31
SFO 2014-09-30  -1214.33    30

Eu não quero digitar manualmente todo o textonecessário para fornecer o código que gera o dataframe acima. Existe uma função pandas / comando que eu posso invocar que resultaria no dataframe em algum tipo de estrutura que alguém pode facilmente copiar e colar em sua linha de comando python / ipython para gerar o objeto dataframe. Algo como df.head().to_clipboard() mas ao invés de copiar a exibição do df, copie o código requerido para produzir o df.

O dataframe acima é bastante simples, mas para quadros de dados complicados, é extremamente complicado digitar manualmente o código necessário para gerar o dataframe em uma pergunta SO.

Respostas:

3 para resposta № 1

Usar to_dict()

Vamos dizer que você tem isso df

df = pd.DataFrame(np.arange(16).reshape(4, 4), list("abcd"),
pd.MultiIndex.from_product([list("AB"), ["One", "Two"]]))
df

insira a descrição da imagem aqui

print df

A       B
One Two One Two
a   0   1   2   3
b   4   5   6   7
c   8   9  10  11
d  12  13  14  15

Eu imprimi primeiro df.to_dict()

print df.to_dict()

{("B", "One"): {"a": 2, "c": 10, "b": 6, "d": 14}, ("A", "Two"): {"a": 1, "c": 9, "b": 5, "d": 13}, ("A", "One"): {"a": 0, "c": 8, "b": 4, "d": 12}, ("B", "Two"): {"a": 3, "c": 11, "b": 7, "d": 15}}

Então eu copiei e colei em um pd.DataFrame(). Você pode formatar ligeiramente o texto copiado para facilitar a leitura.

df = pd.DataFrame({("B", "One"): {"a": 2, "c": 10, "b": 6, "d": 14},
("A", "Two"): {"a": 1, "c": 9, "b": 5, "d": 13},
("A", "One"): {"a": 0, "c": 8, "b": 4, "d": 12},
("B", "Two"): {"a": 3, "c": 11, "b": 7, "d": 15}})

df

insira a descrição da imagem aqui

print df

A       B
One Two One Two
a   0   1   2   3
b   4   5   6   7
c   8   9  10  11
d  12  13  14  15