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 № 1Usar 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
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
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