【发布时间】:2020-11-15 01:50:27
【问题描述】:
谁能告诉我这里的k是什么?
def rule(x, y):
if x == 'high' and y > 10:
return 1
else:
return 0
df = pd.DataFrame({ 'c1':[ 'high' ,'high', 'low', 'low'], 'c2': [0, 23, 17, 4]})
df['new'] = df.apply(lambda k: rule(k['c1'], k['c2']), axis = 1)
df.head()
为什么我不能只使用以下内容?
df['new'] = df["c1","c2"].apply(rule['c1'], ['c2'])
【问题讨论】:
-
k是数据行。 -
谢谢,所以对于这样的语法: df2 = df.apply(lambda x : x + 10) ,x 是否也表示行?
-
只有添加
axis = 1才为行。否则函数应用于列,默认为axis = 0。 -
是的。请注意上面@ipj 所说的内容。
标签: python pandas lambda apply