首页 > 解决方案 > 如何将熊猫行中的元素解析为创建新列的方法?

问题描述

我有以下数据框:

In [282]: f
Out[282]: 
            Strike
01-02-2019   100.0
01-02-2019   105.0
01-02-2019   110.0
01-02-2019   115.0
01-02-2019   120.0

我想将每个位置的条目解析为一个方法并填充一个新列,如下所示:

def method(i,j):
    return(i,j)

for i,j in f.index, f.Strike: 
    f['newcol']=method(i,j) 

但我收到一个错误。我该怎么做?

标签: python-3.xpandas

解决方案


Series.items在列表理解中使用:

df['new'] = [method(k, v) for k, v in df.Strike.items()]

另一个解决方案zip

df['new'] = [method(k, v) for k, v in zip(df.index, df.Strike)]

或使用DataFrame.apply

df['new'] = df.apply(lambda x: method(x.name, x.Strike), axis=1)

print (df)
            Strike                  new
01-02-2019   100.0  (01-02-2019, 100.0)
01-02-2019   105.0  (01-02-2019, 105.0)
01-02-2019   110.0  (01-02-2019, 110.0)
01-02-2019   115.0  (01-02-2019, 115.0)
01-02-2019   120.0  (01-02-2019, 120.0)

推荐阅读