簡體   English   中英

Python Pandas:與apply()一起使用時功能不起作用

[英]Python Pandas: Function doesn't work when used with apply()

以下功能:

def func(x):
    for k in x['slices']:
        for j in k:
            print(x['low'].iloc[j]) 

可以通過以下方式應用:

func(test)

但如下並非如此:

test.apply(func, axis=1)

您能確定原因嗎?


編輯:我僅將打印用於調試目的:該函數曾經是:

def func(x):
    result=[]
    for k in x:
        for j in k:    
            result.append(x['low'].iloc[j])
    return result

這也沒有用

在元素下方重建數據。

df = pd.DataFrame(dict, columns=["low", "slices"])

   dict = {'low': {0: 1207.25,
      1: 1207.5,
      2: 1205.75,
      3: 1206.0,
      4: 1201.0,
      5: 1202.75,
      6: 1203.75},
     'slices': {0: [slice(1, 2, None)],
      1: [slice(1, 3, None), slice(2, 3, None)],
      2: [slice(1, 4, None), slice(2, 4, None), slice(3, 4, None)],
      3: [slice(1, 5, None),
       slice(2, 5, None),
       slice(3, 5, None),
       slice(4, 5, None)],
      4: [slice(1, 6, None),
       slice(2, 6, None),
       slice(3, 6, None),
       slice(4, 6, None),
       slice(5, 6, None)],
      5: [slice(1, 7, None),
       slice(2, 7, None),
       slice(3, 7, None),
       slice(4, 7, None),
       slice(5, 7, None),
       slice(6, 7, None)],
      6: [slice(1, 8, None),
       slice(2, 8, None),
       slice(3, 8, None),
       slice(4, 8, None),
       slice(5, 8, None),
       slice(6, 8, None),
       slice(7, 8, None)]}}

用這種方式定義你的功能

def fun(slices):
    return [df.low.loc[s].tolist() for s in slices]

並應用於切片列

df['slices_low'] = df.slices.apply(fun)

df

在此處輸入圖片說明

暫無
暫無

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

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