只需从df中选择列,通过忽略
axis参数,我们将按列而不是按行进行 *** 作,这将非常重要,因为此处的行数多于列数:
df[['B','D']].apply(function)
这将对每个列运行您的func
In [186]:df[['B','D']].apply(function)Out[186]: B D0 bar foo1 foo bar2 bar foo3 bar bar4 foo foo5 bar bar
您还可以过滤df以仅获取字符串dtype列:
In [189]:df.select_dtypes(include=['object']).apply(function)Out[189]: B D0 bar foo1 foo bar2 bar foo3 bar bar4 foo foo5 bar bar
时机
按列与按行:
In [194]: %timeit df.select_dtypes(include=['object']).apply(function, axis=1)%timeit df.select_dtypes(include=['object']).apply(function)100 loops, best of 3: 3.42 ms per loop100 loops, best of 3: 2.37 ms per loop
但是,对于较大的dfs(逐行),第一种方法的伸缩性会好得多
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)