小编gk7*_*gk7的帖子

按元素在 Pandas 数据框上应用条件

我正在学习 Python,我试图了解 apply() 方法在 Pandas 数据帧中的工作原理。

作为练习,我想使用一行代码将 str.upper() 方法应用于 Pandas 数据框的元素,仅当这些元素是字符串时。

我想将 lambda 条件表达式与 apply 结合起来,但问题是当 apply 调用 Pandas 数据帧时,数据帧——如果我理解得很好——返回一个要应用的系列,然后将它传递给函数。我想知道如何更深入地调用 Pandas 数据框元素上的函数。

这就是我在对 DataFrame 的列(系列)调用 apply() 时按我的意图执行的操作:

df= pd.DataFrame([[1, 'a'],['b',2]], columns = ['A', 'B'] )
df['A'].apply(lambda x: str.upper(x) if type(x) is str else x)
Run Code Online (Sandbox Code Playgroud)

但是我怎么能用一行代码在整个数据帧上做到这一点呢?

我正在寻找一种解决方案,该解决方案可以处理包含数字和字符串的列,并且可以保持数字不变。

python lambda apply conditional-statements pandas

6
推荐指数
1
解决办法
8097
查看次数

Python 中的词法范围

我正在学习 Python,更具体地说,我正在探索范围规则。

我尝试了以下“实验”:

def increment(n): 
   n += 1 
   print(n)
   return n

n = 1 
increment(n) 
print(n) 
Run Code Online (Sandbox Code Playgroud)

这段代码输出: 2 , 1 ,既然变量 n 返回到全局环境,难道不应该输出 2, 2 吗?

您的建议将不胜感激。

python scoping

3
推荐指数
1
解决办法
4167
查看次数

标签 统计

python ×2

apply ×1

conditional-statements ×1

lambda ×1

pandas ×1

scoping ×1