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
对于这个数据框:
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