簡體   English   中英

為什么 lambda 指令返回不同的結果?

[英]Why does the lambda instruction return different results?

import pandas as pd

df = pd.DataFrame([['AB,CD'],['AB,FJS'],['DG']],
                   index = [1,2,3],columns=['A'])

為什么以下兩個代碼返回不同的結果

for i in df["A"]:
    for n in i.split(","):
        print(n)

返回

AB
CD
AB
FJS
DG

但其他代碼

def fx(x):
    for i in x["A"]:
        for n in i.split(","):
            print(n)
df.apply(lambda x: fx(x), axis = 1)

返回

A
B
,
C
D
A
B
,
F
J
S
D
G

那么,為什么 lambda 會返回不同的結果呢? 以及如何更改 lambda 代碼以返回與前一個相同的結果? 感謝之前的

結果不同,因為 lambda 函數分別應用於每一行。 因此,例如,在第一行中xAB,CD並且當您for i in x["A"] ,您會遍歷每個單獨的符號。

def fx(x):
    for i in x["A"].split(","):
        print(i)
df.apply(lambda x: fx(x), axis = 1)

暫無
暫無

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

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