4 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
像你這樣的數(shù)據(jù)框:
df = pd.DataFrame([['PENúLTIMO','Ativo Total','702571987.0'],
['úLTIMO','Ativo Total','802819794.0'],
['PENúLTIMO','Caixa e Equivalentes de Caixa','31037881.0'],
['úLTIMO','Caixa e Equivalentes de Caixa','25219700.0']], columns=['ORDEM_EXER','DS_CONTA','VL_CONTA'])
代表這個(gè):
ORDEM_EXER--DS_CONTA-----------------------VL_CONTA
0 PENúLTIMO---Ativo Total--------------------702571987.0
1 úLTIMO------Ativo Total--------------------802819794.0
2 PENúLTIMO---Caixa e Equivalentes de Caixa--31037881.0
3 úLTIMO------Caixa e Equivalentes de Caixa--25219700.0
嘗試使用樞軸:
df.pivot(index='DS_CONTA',columns='ORDEM_EXER',values='VL_CONTA')
代表這個(gè):
ORDEM_EXER-----PENúLTIMO---------------------úLTIMO
DS_CONTA
Ativo Total--------------------702571987.0---802819794.0
Caixa e Equivalentes de Caixa--31037881.0----25219700.0

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
您可以嘗試使用pivot_table來實(shí)現(xiàn) pandas 數(shù)據(jù)框的數(shù)據(jù)透視值。如果數(shù)據(jù)框是:
df
>>>
ORDEM_EXER? DS_CONTA? ? VL_CONTA
0? ?PENúLTIMO? ?Ativo Total 702571987
1? ?úLTIMO? Ativo Total 802819794
2? ?PENúLTIMO? ?Caixa e Equivalentes de Caixa? ?31037881
3? ?úLTIMO? Caixa e Equivalentes de Caixa? ?25219700
然后
table = pd.pivot_table(df, values='VL_CONTA', index=['DS_CONTA'], columns=['ORDEM_EXER'], aggfunc=np.sum)

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
首先,我們使用您的示例數(shù)據(jù)創(chuàng)建一個(gè)數(shù)據(jù)框:
from io import StringIO
import pandas as pd
data = '''ORDEM_EXER-----DS_CONTA-------------------------VL_CONTA
PENúLTIMO-----Ativo Total-----------------------702571987.0
úLTIMO--------Ativo Total-----------------------802819794.0
PENúLTIMO-----Caixa e Equivalentes de Caixa-----31037881.0
úLTIMO--------Caixa e Equivalentes de Caixa-----25219700.0
'''
df = pd.read_csv(StringIO(data), sep='-+', engine='python')
print(df)
ORDEM_EXER DS_CONTA VL_CONTA
0 PENúLTIMO Ativo Total 702571987.0
1 úLTIMO Ativo Total 802819794.0
2 PENúLTIMO Caixa e Equivalentes de Caixa 31037881.0
3 úLTIMO Caixa e Equivalentes de Caixa 25219700.0
現(xiàn)在我們使用數(shù)據(jù)透視表重新格式化和總結(jié):
print(df.pivot_table(index='DS_CONTA',
columns='ORDEM_EXER',
values='VL_CONTA',
aggfunc=sum,
fill_value=0))
ORDEM_EXER PENúLTIMO úLTIMO
DS_CONTA
Ativo Total 702571987 802819794
Caixa e Equivalentes de Caixa 31037881 25219700

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
好的,如果我沒理解錯(cuò)的話,你真的想為DS_CONTA設(shè)置索引
DF = DF.set_index(['DS_CONTA'])
那是對(duì)的嗎?
添加回答
舉報(bào)