在多个数据框中为多列申请循环?

维斯瓦·乔汉

数据框如下所示:如果年龄超过 100,我想将数据框值更改为“死”。

import pandas as pd
raw_data = {'age1': [23,45,210],'age2': [10,20,150],'name': ['a','b','c']}
df = pd.DataFrame(raw_data, columns = ['age1','age2','name'])

raw_data = {'age1': [80,90,110],'age2': [70,120,90],'name': ['a','b','c']}
df2 = pd.DataFrame(raw_data, columns = ['age1','age2','name'])

预期结果

df=
    age1    age2    name
0   23      10       a
1   45      20       b
2   dead    dead     c

df2=
    age1    age2    name
0   80      70       a
1   90      dead     b
2   dead    90       c

我正在尝试这样的事情:

col_list=['age1','age2']
df_list=[df,df2]

def dead(df):
  for df in df_list:
    if df.columns in col_list:
      if df.columns >=100:
        return 'dead'
    else:
      return df.columns

df.apply(dead)

显示错误:包含多个元素的数组的真值不明确。使用 a.any() 或 a.all()

我正在寻找一个适用于所有数据帧的循环。

也请更正我的功能以供将来学习:)

jlb_gouveia

我做了以下事情:

col_list=['age1','age2']
df_list=[df,df2]

for d in df_list:
    for c in col_list:
        d.loc[d[c]>100, c] = 'dead'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章