相关疑难解决方法(0)

为什么Python lambdas有用?

我想弄清楚Python lambdas.lambda是现实生活中应该被遗忘的"有趣"语言项目之一吗?

我确信有一些可能需要它的边缘情况,但考虑到它的模糊性,它在未来版本中重新定义的可能性(我基于它的各种定义的假设)和降低的编码清晰度 - 应该是要避免吗?

这让我想起C类型的溢出(缓冲区溢出) - 指向顶部变量并重载以设置其他字段值.感觉就像是一种技术表演,但维护编码器的噩梦.

python lambda closures function

903
推荐指数
22
解决办法
54万
查看次数

如何按多列过滤pandas数据帧

要按单列过滤数据框(df),如果我们考虑男性和女性的数据,我们可能会:

males = df[df[Gender]=='Male']
Run Code Online (Sandbox Code Playgroud)

问题1 - 但如果数据跨越多年并且我只想看2014年的男性怎么办?

在其他语言中,我可能会这样做:

if A = "Male" and if B = "2014" then 
Run Code Online (Sandbox Code Playgroud)

(除了我想这样做并在新的dataframe对象中获取原始数据帧的子集)

问题2.如何在循环中执行此操作,并为每个独特的年份和性别集创建数据框对象(即:2013年男性,2013年女性,2014年男性和2014年女性的df

for y in year:

for g in gender:

df = .....
Run Code Online (Sandbox Code Playgroud)

python filter pandas

80
推荐指数
6
解决办法
11万
查看次数

如何同时有效地将元组应用于 Pandas 数据帧中的多列

我可以让这个工作

df['col_A'] = df.apply(lambda x: getSingleValue(x['col_X']), axis=1)
Run Code Online (Sandbox Code Playgroud)

而且当我的函数返回元组时

df['col_A'] = df.apply(lambda x: getaTuple(x['col_X'])[0], axis=1)
df['col_B'] = df.apply(lambda x: getaTuple(x['col_X'])[1], axis=1)
Run Code Online (Sandbox Code Playgroud)

但是,我需要知道是否有一种方法可以getaTuple()使用单个函数调用将元组输出应用于数据框的多列,而不是getaTuple为我设置值的每一列多次调用。

这是输入和输出的示例

df = pd.DataFrame(["testString_1", "testString_2", "testString_3"], columns=['column_X'])

def getaTuple(string):
    return tuple(string.split("_"))

In [3]: iwantthis
Out[3]: 
   col_X        col_A       col_B
0  testString_1 testString  1
1  testString_2 testString  2
2  testString_3 testString  3
Run Code Online (Sandbox Code Playgroud)

仅供参考,这类似于如何一次将函数应用于 Pandas 数据框中的多列 但不重复,因为在我的情况下,我需要将其col_X作为输入传递给我的函数。

python pandas

3
推荐指数
2
解决办法
4332
查看次数

标签 统计

python ×3

pandas ×2

closures ×1

filter ×1

function ×1

lambda ×1