私はデータフレームを持っており、行の順序を乱さずに2つの行を合計しようとしています。pandas:データフレームを並べ替えることなく2行のデータフレームを合計しますか?
> test = {'counts' : pd.Series([10541,4143,736,18,45690], index=['Daylight','Dawn','Other/unknown','Uncoded & errors','Total']), 'percents' : pd.Series([23.07,9.07,1.61,0.04,100], index=['Daylight','Dawn','Other/unknown','Uncoded & errors','Total'])}
> testdf = pd.DataFrame(test)
counts percents
Daylight 10541 23.07
Dawn 4143 9.07
Other/unknown 736 1.61
Uncoded & errors 18 0.04
Total 45690 100.00
私はこの出力をしたい:
counts percents
Daylight 10541 23.07
Dawn 4143 9.07
Other/unknown 754 1.65 <-- sum of 'other/unknown' and 'uncoded & errors'
Total 45690 100.00
これは私が得ることができました限り近い:
> sum_ = testdf.loc[['Other/unknown', 'Uncoded & errors']].sum().to_frame().transpose()
counts percents
0 754.00 1.65
> sum_ = sum_.rename(index={0: 'Other/unknown'})
counts percents
Other/unknown 754.00 1.65
> testdf.drop(['Other/unknown', 'Uncoded & errors'],inplace=True)
> testdf = testdf.append(sum_)
Daylight 10541 23.07
Dawn 4143 9.07
Total 45690 100
Other/unknown 754 1.65
をしかし、これは、元の行の順序を保持していません
データフレームをスライスし、 'Dawn'と 'Total'の間にsum_ rowを挿入することで行を挿入できますが、これはn行ラベルが変更されたり、行の順序が変更されたりする場合は、作業を中止してください(これは年次パンフレットなので、テーブルデザインは毎年変更される可能性があります)。