小编Blu*_*rry的帖子

将方法应用于 pandas 数据框中的几个选定列

我想对数据框中的几列应用一些小方法。方法 color_negative 不能应用于带有字符串的列,因此我需要以某种方式跳过这些列。我可以想到两种方法来解决这个问题,但遗憾的是没有一种方法有效。

  • 在方法 1 中:

    我尝试将该方法逐一应用于每一列,通过使用数据帧的索引并将 while 循环的递增计数器设置为 1 来跳过第一列。执行此方法时,我收到错误,即“系列”对象没有属性“样式”,所以显然,我无法将方法应用于单个列。

  • 在方法 2 中:

    我尝试使用子集仅将该方法应用于具有数值的列,但我不确定是否正确使用子集。执行此方法时,我收到错误,“Styler”类型的对象没有len().

这是一个简化的例子:

import pandas as pd

d = {'col1': ['a', 'b'], 'col2': [21, 22], 'col3': [3, 51]}
df = pd.DataFrame(data=d)

def color_negative_red(val):
    color = 'black'
    if val < -1 : color = 'red'
    if val > 1 :  color = 'green'
    return 'color: %s' % color    
    
i=1
while i <= len(df):
    #Approach 1
    df.iloc[:, i] = df.iloc[:, i].style.applymap(color_negative_red)
    #Approach 2
    df = df.style.applymap(color_negative_red, subset …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

5
推荐指数
2
解决办法
8606
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1