如何处理TypeError:必须是str,n

2024-10-06 11:19:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在试着运行这个

 pa['pattern'] = pa['AccessType']  + pa.groupby(['AccessedBy'])['AccessType'].shift(1)

但它正在投掷

^{pr2}$

但是

AccessedBy                 object
AccessType                 object

几天前我最后一次运行的时候,它运行得很好。我错过了什么?在


Tags: shiftobjectpatterngroupbypapr2accesstypeaccessedby
2条回答

我想你的数据可能已经改变了:

df = pd.DataFrame({'Group':['X']*4+['Z']*4, 'AccessType':[*'ABCDEFGH']})

df['AccessType'] + df.groupby('Group')['AccessType'].shift(1)

运行良好:

^{pr2}$

但是,你必须处理那些南。在

但是,如果我们把“A”改为数字1:

df = pd.DataFrame({'Group':['X']*4+['Z']*4, 'AccessType':[1]+[*'BCDEFGH']})

df['AccessType'] + df.groupby('Group')['AccessType'].shift(1)

你会得到:

TypeError: unsupported operand type(s) for +: 'int' and 'str'

在执行groupby()之前,通过对数据帧中用作参数的列之一进行类型转换,将其转换为str。在

df['column name'] = df['column name'].astype(str)

相关问题 更多 >