簡體   English   中英

熊貓條件划分,按列表序列

[英]Pandas conditional division, series by list

我正在嘗試對熊貓系列應用if條件,然后針對列表中的整數值對同一數據幀中的另一個系列應用除法運算。

我嘗試應用的邏輯如下:如果hh_cat系列中的家庭類別與i的當前值匹配,則將消費系列除以列表值family_con[i-1]

for i in hh_cat:
   result = mod_df[(mod_df["hh_cat"]==i)].div()["consumption"](family_con[i-1])

TypeError                                 Traceback (most recent call last)
<ipython-input-120-219bc0ce5a07> in <module>()
  1 for i in hh_cat:
----> 2     result = mod_df[(mod_df["hh_cat"]==i)].div()["consumption"] (family_con[i-1])

TypeError: f() takes at least 2 arguments (1 given)

使用合並可能會幫助:

首先將列表轉換為數據框:

df = pd.DataFrame(family_con,columns=['cons'])

接下來,將一列添加到原始數據框中,該列與索引匹配並可以用於聯接:

mod_df["hh_cat_join"]= mod_df["hh_cat"]-1

接下來執行聯接:

merged_df=mod_df.merge(df,how='left',left_on='hh_cat_join',right_index=True)

最后進行計算並將其保存在結果列中:

merged_df['result']=merged_df['consumption']/merged_df['cons']

我不太確定變量hh_cat和列'hh_cat'之間的連接,但我認為您可以添加一個名為hh_cat_var的列(對應於您要遍歷的變量)並執行

mod_df[mod_df['hh_cat'] == mod_df['hh_cat_var']]....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM