Python 替换数据帧列w/'中的整数;Y';

Python 替换数据帧列w/'中的整数;Y';,python,pandas,dataframe,pivot-table,Python,Pandas,Dataframe,Pivot Table,我有一个包含两列的数据框架:Account,bunded Food,我用一个透视表创建了它,将每个Account压缩成一行。现在,它以数字的形式向我显示购买的食物总量,但我是否可以更改数据,使其仅显示一个“Y”,其中有一个整数(我已经在使用fillna函数替换NaN w/No) 例如: 当前: 阿克特诺布希特食品公司 1ABC 5 2ABD N 3DBC 7 想要: 阿克特诺布希特食品公司 公元前1年 2ABD N 3DBC Y通过+或应用创建布尔掩码 #if all data strings,

我有一个包含两列的数据框架:Account,bunded Food,我用一个透视表创建了它,将每个Account压缩成一行。现在,它以数字的形式向我显示购买的食物总量,但我是否可以更改数据,使其仅显示一个“Y”,其中有一个整数(我已经在使用fillna函数替换NaN w/No)

例如:

当前: 阿克特诺布希特食品公司 1ABC 5 2ABD N 3DBC 7

想要: 阿克特诺布希特食品公司 公元前1年 2ABD N 3DBC Y通过+或
应用创建布尔掩码

#if all data strings, also numeric
m = pd.to_numeric(df['BoughtFood'], errors='coerce').notnull()
然后通过或设置值:


多列解决方案:

cols = ['BoughtFood','BoughtWater']
m = df[cols].apply(lambda x: pd.to_numeric(x, errors='coerce')).notnull()
df[cols] = df[cols].mask(m, 'T')
print (df)
  AcctNo BoughtFood BoughtWater
0   1ABC          T           N
1   2ABD          N           T
2   3DBC          T           T

不知道我最终得到了相同的解决方案:)+1非常感谢,这可以在多个列上完成吗?比如说我也加了一个“买水”栏?
df.loc[m, 'BoughtFood'] = 'T'
print (df)
  AcctNo BoughtFood
0   1ABC          T
1   2ABD          N
2   3DBC          T
df['BoughtFood'] = df['BoughtFood'].mask(m, 'T')
print (df)
  AcctNo BoughtFood
0   1ABC          T
1   2ABD          N
2   3DBC          T
cols = ['BoughtFood','BoughtWater']
m = df[cols].apply(lambda x: pd.to_numeric(x, errors='coerce')).notnull()
df[cols] = df[cols].mask(m, 'T')
print (df)
  AcctNo BoughtFood BoughtWater
0   1ABC          T           N
1   2ABD          N           T
2   3DBC          T           T