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

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

按第一個元素然后第一個和第二個元素等迭代列表

按第一個元素然后第一個和第二個元素等迭代列表

元芳怎么了 2022-07-05 19:43:56
我有一個數據框列表,每個數據框都有一個分類屬性“landType”。df_list = [df1,df2,df3]df1.landType.unique() == A,Bdf2.landType.unique() == Bdf3.landType.unique() == B,C我想創建一個新列表,其中包含唯一值的數量,但考慮到以前的迭代,即:len(df1.landType.unique()) == 2len(df1 AND df2.landType.unique()) == 2len(df1 AND df2 AND df3.landType.unique()) == 3output_list = [2,2,3]
查看完整描述

3 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

Python 3.8 中的新賦值表達式可用于保持x到目前為止看到的所有 s 的運行總數。


>>> a = [1, 2, 3]

>>> y = 0

>>> [(y := y + x) for x in a]

[1, 3, 6]

新語法的這種應用概括了itertools.accumulate已經做的事情。


>>> from itertools import accumulate

>>> list(accumulate(a))

[1, 3, 6]


查看完整回答
反對 回復 2022-07-05
?
慕村9548890

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

答案最終是這樣的:

out_put_list = [len(pd.concat(df_list[y][0:i+1]).reset_index().drop('index',axis=1)['landType'].unique())
                        for i in range(len(df_list[y]))]

pd 是熊貓模塊


查看完整回答
反對 回復 2022-07-05
?
溫溫醬

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

這種擁有一個新的空白列表 b 的非常基本的方法,遍歷列表 a 中的所有項目,將累積值添加到每個元素并繼續附加到 b 將為您提供結果(除了 itertools 方法)


a = [1,2,3]

b = [] 

acum = 0

for i in a:

    b.append(i+acum)

    acum += i

print (b)

[1, 3, 6]


查看完整回答
反對 回復 2022-07-05
  • 3 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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