4 回答
TA贡献1824条经验 获得超8个赞
像你这样的数据框:
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'])
代表这个:
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')
代表这个:
ORDEM_EXER-----PENÚLTIMO---------------------ÚLTIMO
DS_CONTA
Ativo Total--------------------702571987.0---802819794.0
Caixa e Equivalentes de Caixa--31037881.0----25219700.0
TA贡献1820条经验 获得超10个赞
您可以尝试使用pivot_table来实现 pandas 数据框的数据透视值。如果数据框是:
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贡献2051条经验 获得超10个赞
首先,我们使用您的示例数据创建一个数据框:
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
现在我们使用数据透视表重新格式化和总结:
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
添加回答
举报