Python 如何确定数据帧列中列表列表的长度?
我有一个数据框,其中有一列包含如下列表 指数 (“源”、“目标”) 最短路径值 路径列表 0 (‘a’、‘b’) 3. [a'、[c'、[b']、[a'、[c'、[d'、[b']、[a'、[e'、[f'、[g'、[b']] 1. (‘g’、‘z’) 1. [g',z',[g',l',z']]Python 如何确定数据帧列中列表列表的长度?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据框,其中有一列包含如下列表 指数 (“源”、“目标”) 最短路径值 路径列表 0 (‘a’、‘b’) 3. [a'、[c'、[b']、[a'、[c'、[d'、[b']、[a'、[e'、[f'、[g'、[b']] 1. (‘g’、‘z’) 1. [g',z',[g',l',z']] 您可以创建两个函数,每列一个,并使用apply()方法应用它们。见下文: def length_of_paths(l): k=[len(i) for i in l] minlen=min(k
您可以创建两个函数,每列一个,并使用apply()方法应用它们。见下文:
def length_of_paths(l):
k=[len(i) for i in l]
minlen=min(k)
return [i-1 for i in k if i!=minlen]
def total_value(l):
return sum([1/i for i in l])
df['length of paths']=df['list of paths'].apply(lambda x: length_of_paths(x))
df['total value']=df['length of paths'].apply(lambda x: total_value(x))
输出:
>>> print(df)
list of paths length of paths total value
0 [[a, c, b], [a, c, d, b], [a, e, f, g, b]] [3, 4] 0.583333
1 [[g, z], [g, l, z]] [2] 0.500000
您能否澄清一下:“在第二列中,我想对‘路径长度’列中每行的反向值求和。”?此外,我相信您的预期输出是不正确的