我想創建一個列,它是存盤在其他列中的串列的布爾邏輯的結果。
import pandas as pd
import numpy as np
d = {'202201': [7180516.0, 4868058.0], '202202': [433433740.0, 452632806.0], '202203': [5444119.0, 10000000.0]}
df = pd.DataFrame(data=d)
#Storing Values in List
df['seq'] = df.agg(list, axis=1)
#Or
#df['seq'] = df.agg(np.array, axis=1)
df
我想要的所需輸出是一個新的 col (df['seqToFs']),它是一個 True 或 False 串列對于 df['seq']list > 8000000 中的值。
import numpy as np
d = {'202201': [7180516.0, 4868058.0], '202202': [433433740.0, 452632806.0], '202203': [5444119.0, 10000000.0],
'seq':[[7180516.0,433433740.0,5444119.0],[4868058.0,452632806.0,10000000.0]], 'seqToFs':[[False,True,False],[False,True,True]]}
df = pd.DataFrame(data=d)
df
將 df['seq'] 設為 list 或 np.array 是否更好?
我的最終目標是分析滿足條件的值的順序。有沒有比在資料框中制作串列更好的方法來執行此類分析?
我試圖應用于每一行的示例框架。(不是我的代碼)
original_prices = [1.25, -9.45, 10.22, 3.78, -5.92, 1.16]
prices = [True if i > 0else False for i in original_prices]
prices
其中 original_prices 串列被替換為行串列 df['seq'] 并且價格是新的 col df['seqToFs]。由于串列格式而出現錯誤。
幫助將不勝感激。
uj5u.com熱心網友回復:
您可以使用普通>運算子,然后使用aggorapply來獲得所需的輸出:
(df > 8000000).apply(list, axis=1)
0 [False, True, False]
1 [False, True, True]
例子:
df = pd.DataFrame({'202201': [7180516.0, 4868058.0], '202202': [433433740.0, 452632806.0], '202203': [5444119.0, 10000000.0]})
df['seqToFs'] = (df > 8000000).apply(list, axis=1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/516743.html
下一篇:Haskell成對串列到成對串列
