亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Pandas_Python中合并求和和排除

在Pandas_Python中合并求和和排除

料青山看我應如是 2021-03-31 09:15:30
我正在嘗試使用此Python腳本合并重復的行。我將一列用逗號分隔,然后將其余部分求和,最后使用熊貓刪除重復項,但是我需要從求和中排除一些行。例如,我不想將poly_area和total_area求和。我應該怎么辦?import pandas as pdoutput = r'C:dummy'    fieldlist = ["FID","total_area","POLY_AREA", "PERCENTAGE","C5_3","M1_4","M1_4_R6A","M1_4_R6B", "M1_4_R7A", "M1_5_R10",                 "M1_5_R7_3","M1_5_R9","M1_6_R10","PARK","R6A", "R6B", "R7A"]    #Create dataframe from cursor    df = pd.DataFrame.from_records(data=arcpy.da.SearchCursor('calculations', fieldlist), columns = fieldlist)    #Create a new dataframe of FIDS and comma-separated percentages    df1 = df.groupby("FID")["PERCENTAGE"].apply(lambda x: ", ".join(x.astype(str))).reset_index()    #Create a new dataframe of sums per FID    df2 = df.groupby("FID").sum()    df2.drop("PERCENTAGE", axis=1, inplace=True)    #Merge/join them together and export as csv    df1.merge(df2, left_on="FID", right_index=True).to_csv(path_or_buf=output, index=False)
查看完整描述

2 回答

?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

這將完成您的工作,只需用它替換您所擁有的即可。


 #Create a new dataframe of FIDS and comma-separated percentages

df1 = df.groupby(["FID","total_area","POLY_AREA"])["PERCENTAGE"].apply(lambda x: ", ".join(x.astype(str))).reset_index()


#Create a new dataframe of sums per FID

df2 = df.groupby("FID").sum()

df2.drop(["total_area","POLY_AREA","PERCENTAGE"], axis=1, inplace=True)


查看完整回答
反對 回復 2021-04-13
?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

創建df2時,您可以嘗試獲取列的子集,以便排除不需要的內容。具體嘗試創建像這樣的df2:


df2_cols = [col for col in fieldlist if col not in ['FID', 'total_area', 'POLY_AREA']]

df2 = df.groupby("FID")[df2_cols].sum()

創建合并的df之后,您也可以刪除不需要的列。


查看完整回答
反對 回復 2021-04-13
  • 2 回答
  • 0 關注
  • 304 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號