如何将数据附加到Pandas Multi-Index DataFrame?我目前使用以下代码从我的数据中成功创建数据框。
df = pd.DataFrame.from_dict(output, orient='index')
我想的可能是这样的......
df = pd.DataFrame['MMM', 'IncomeStatement'].from_dict(output, orient='index')
0 1 2
Total Revenue 182795000 170910000 156508000
Cost of Revenue 112258000 106606000 87846000
Gross Profit 70537000 64304000 68662000
Research Development 6041000 4475000 3381000
Selling General and Administrative 11993000 10830000 10040000
Non Recurring 0 0 0
Others 0 0 0
Total Operating Expenses 0 0 0
Operating Income or Loss 52503000 48999000 55241000
Total Other Income/Expenses Net 980000 1156000 522000
Earnings Before Interest And Taxes 53483000 50155000 55763000
Interest Expense 0 0 0
Income Before Tax 53483000 50155000 55763000
Income Tax Expense 13973000 13118000 14030000
Minority Interest 0 0 0
Net Income From Continuing Ops 39510000 37037000 41733000
Discontinued Operations 0 0 0
Extraordinary Items 0 0 0
Effect Of Accounting Changes 0 0 0
Other Items 0 0 0
Net Income 39510000 37037000 41733000
Preferred Stock And Other Adjustments 0 0 0
Net Income Applicable To Common Shares 39510000 37037000 41733000
MMM IncomeStatemen
BalanceSheet
CashFlows
ABT IncomeStatement
BalanceSheet
CashFlows
ABBV IncomeStatement
BalanceSheet
CashFlows
ACN IncomeStatement
BalanceSheet
CashFlows
MMM IncomeStatement Total Revenue 182795000 170910000 156508000
Cost of Revenue 112258000 106606000 87846000
Gross Profit 70537000 64304000 68662000
Research Development 6041000 4475000 3381000
Selling General and Administrative 11993000 10830000 10040000
Non Recurring 0 0 0
Others 0 0 0
Total Operating Expenses 0 0 0
Operating Income or Loss 52503000 48999000 55241000
Total Other Income/Expenses Net 980000 1156000 522000
Earnings Before Interest And Taxes 53483000 50155000 55763000
Interest Expense 0 0 0
Income Before Tax 53483000 50155000 55763000
Income Tax Expense 13973000 13118000 14030000
Minority Interest 0 0 0
Net Income From Continuing Ops 39510000 37037000 41733000
Discontinued Operations 0 0 0
Extraordinary Items 0 0 0
Effect Of Accounting Changes 0 0 0
Other Items 0 0 0
Net Income 39510000 37037000 41733000
Preferred Stock And Other Adjustments 0 0 0
Net Income Applicable To Common Shares 39510000 37037000 41733000
BalanceSheet
CashFlows
ABT IncomeStatement
BalanceSheet
CashFlows
ABBV IncomeStatement
BalanceSheet
CashFlows
ACN IncomeStatement
BalanceSheet
CashFlows
答案 0 :(得分:2)
使用DataFrames的简化版本。
假设您从:
开始import pandas as pd
import numpy as np
arrays = [np.array(['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux']),
np.array(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'])]
s = pd.DataFrame(index=arrays)
这样
>> s
bar one
two
baz one
two
foo one
two
qux one
two
(这是你的父母)
以及
c = pd.DataFrame(index=['one', 'two'], data=[23, 33])
这样
>> c
0
one 23
two 33
(这是你的第一个DataFrame)
所以,merge
+ groupby
给予
>> pd.merge(s.reset_index(), c, left_on='level_1', right_index=True).groupby(['level_0', 'level_1']).sum()
0
level_0 level_1
bar one 23
two 33
baz one 23
two 33
foo one 23
two 33
qux one 23
two 33