Pandas-同一列中不同对象的 Lambda

Pandas-Lambda for different objects in same column

对于这个数据框:

import pandas as pd
df=pd.DataFrame([[2],['do-g'],['ra-t'],['ca-t'],[5]], columns=['A'])
print(df)

第 'A' 列中的值被视为 'int' 值。如何添加一个新列(源自 'A' 列),该列从单词中删除了“-”但数字/整数保持原样?

我尝试的解决方案:

df['new_column']=df.A.apply(lambda x: x.replace('-') if x.isnull() else x)

您可以忽略 lambda 中的非字符串值。

>>> df['new_column'] = df.A.apply(lambda x: x.replace('-', '') if isinstance(x,str) else x)
>>> df
      A new_column
0     2          2
1  do-g        dog
2  ra-t        rat
3  ca-t        cat
4     5          5