簡體   English   中英

對數據框熊貓的列中存在的列表執行計算

[英]Perform calculations on a list present in a column of a dataframe pandas

我有以下數據框:

    Position        A           B   
0   29644164       71.0    [31, 38, 1, 1]   
1   45861974       45.0    [17, 26, 1, 1]   
2   58142396       69.0    [37, 31, 0, 1]   
3   41223046       75.0    [21, 53, 0, 1] 

我想對B列進行計算。我想將2個數字加到最后2個位置,然后將它們除以所有4個數字的和。 然后,將結果添加到新列“ calc”中

因此,我期望的數據幀將是:

     Position        A           B          calc
0   29644164       71.0    [3, 5, 1, 1]     0.2
1   45861974       45.0    [2, 2, 1, 1]     0.333
2   58142396       69.0    [3, 7, 0, 1]     0.1
3   41223046       75.0    [3, 2, 0, 1]     0.2

我該怎么做?

使用清單理解:

df['calc'] = [sum(x[-2:]) / sum(x) for x in df.B]
print (df)
   Position     A               B      calc
0  29644164  71.0  [31, 38, 1, 1]  0.028169
1  45861974  45.0  [17, 26, 1, 1]  0.044444
2  58142396  69.0  [37, 31, 0, 1]  0.014493
3  41223046  75.0  [21, 53, 0, 1]  0.013333

詳細資料

print ([sum(x[-2:]) for x in df.B])
[2, 2, 1, 1]

print ([sum(x) for x in df.B])
[71, 45, 69, 75]

暫無
暫無

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

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