第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

添加 groupby 對象的各個(gè)數(shù)據(jù)幀的數(shù)字列的 Pythonic 方法

添加 groupby 對象的各個(gè)數(shù)據(jù)幀的數(shù)字列的 Pythonic 方法

繁花如伊 2023-06-27 10:43:05
我有一個(gè)時(shí)間序列數(shù)據(jù),我將其分組,并且想將所有組的數(shù)字列相加。注意:這不是各個(gè)組的列的聚合,而是組對象中所有數(shù)據(jù)幀的相應(yīng)單元格的總和。由于它是時(shí)間序列數(shù)據(jù),因此數(shù)據(jù)幀中的一些列本質(zhì)上保持相同,例如Region和Region_Code本身Time在數(shù)據(jù)幀中保持相同。我的偽代碼是 -通過...分組Region_Code僅選擇分組對象的數(shù)字列制作區(qū)域列表通過迭代區(qū)域列表和求和來調(diào)用組對象中的數(shù)據(jù)框讓其他列像Region,Region_Code和Time但問題是,當(dāng)我添加帶有空數(shù)據(jù)幀的調(diào)用數(shù)據(jù)幀時(shí),所有內(nèi)容都變成空/空,所以最終我什么都沒有。import pandas as pdcountries = ['United States','United States','United States','United States','United States', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'China', 'China', 'China', 'China', 'China']code = ['US', 'US','US','US','US','CAN','CAN','CAN','CAN','CAN', 'CHN','CHN','CHN','CHN','CHN']time = [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5]temp = [2.1,2.2,2.3,2.4,2.5, 3.1,3.2,3.3,3.4,3.5, 4.1,4.2,4.3,4.4,4.5]pressure = [1.0,1.0,1.0,1.0,1.0, 1.1, 1.1, 1.1, 1.1, 1.1, 1.2,1.2,1.2,1.2,1.2]speed = [20,21,22,23,24, 10,11,12,13,14, 30,31,32,33,34]df = pd.DataFrame({'Region': countries, 'Time': time, 'Region_Code': code, 'Temperature': temp, 'Pressure': pressure, 'Speed': speed})countries_grouped = df.groupby('Region_Code')[list(df.columns)[3:]]country_list = ['US', 'CAN', 'CHN']temp = pd.DataFrame()for country in country_list:    temp += countries_grouped.get_group(country) ## <--- Failstemp# Had the above worked, the rest of the columns can be made as followstemp['Region'] = 'All'temp['Time'] = df['Time']temp['Region_Code'] = 'ALL'它看起來并不可潘多拉。最好的方法是什么?預(yù)期輸出:    Region  Time    Region_Code     Temperature     Pressure    Speed0   All      1          ALL              9.3            3.3       601   All      2          ALL              9.6            3.3       632   All      3          ALL              9.9            3.3       663   All      4          ALL              10.2           3.3       694   All      5          ALL              10.5           3.3       72
查看完整描述

1 回答

?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊

我認(rèn)為您需要聚合sum- 默認(rèn)情況下排除所有非數(shù)字列,因此您可以通過DataFrame.reindex原始列添加它們,并通過以下方式替換缺失值ALL

print (df.groupby('Time', as_index=False).sum())

? ?Time? Temperature? Pressure? Speed

0? ? ?1? ? ? ? ? 9.3? ? ? ?3.3? ? ?60

1? ? ?2? ? ? ? ? 9.6? ? ? ?3.3? ? ?63

2? ? ?3? ? ? ? ? 9.9? ? ? ?3.3? ? ?66

3? ? ?4? ? ? ? ?10.2? ? ? ?3.3? ? ?69

4? ? ?5? ? ? ? ?10.5? ? ? ?3.3? ? ?72


df = df.groupby('Time', as_index=False).sum().reindex(df.columns, axis=1, fill_value='ALL')

print (df)

? Region? Time Region_Code? Temperature? Pressure? Speed

0? ? ALL? ? ?1? ? ? ? ?ALL? ? ? ? ? 9.3? ? ? ?3.3? ? ?60

1? ? ALL? ? ?2? ? ? ? ?ALL? ? ? ? ? 9.6? ? ? ?3.3? ? ?63

2? ? ALL? ? ?3? ? ? ? ?ALL? ? ? ? ? 9.9? ? ? ?3.3? ? ?66

3? ? ALL? ? ?4? ? ? ? ?ALL? ? ? ? ?10.2? ? ? ?3.3? ? ?69

4? ? ALL? ? ?5? ? ? ? ?ALL? ? ? ? ?10.5? ? ? ?3.3? ? ?72

編輯:對于自定義替換缺失值,請DataFrame.fillna與字典一起使用 - 具有替換值的列名稱:


d = {'Region':'GLOBAL','Region_Code':'ALL'}

df1 = df.groupby('Time', as_index=False).sum().reindex(df.columns, axis=1).fillna(d)

print (df1)

? ?Region? Time Region_Code? Temperature? Pressure? Speed

0? GLOBAL? ? ?1? ? ? ? ?ALL? ? ? ? ? 9.3? ? ? ?3.3? ? ?60

1? GLOBAL? ? ?2? ? ? ? ?ALL? ? ? ? ? 9.6? ? ? ?3.3? ? ?63

2? GLOBAL? ? ?3? ? ? ? ?ALL? ? ? ? ? 9.9? ? ? ?3.3? ? ?66

3? GLOBAL? ? ?4? ? ? ? ?ALL? ? ? ? ?10.2? ? ? ?3.3? ? ?69

4? GLOBAL? ? ?5? ? ? ? ?ALL? ? ? ? ?10.5? ? ? ?3.3? ? ?72


查看完整回答
反對 回復(fù) 2023-06-27
  • 1 回答
  • 0 關(guān)注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號