Python 如何一次删除多个列的字符串中的第一个字符?

Python 如何一次删除多个列的字符串中的第一个字符?,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有6列对象($19.99、$25.99等),我想将它们转换为浮动(19.99、25.99等)。我必须做的第一件事是删除所有这些列的第一个字符。我能做到这一点 df['Subtotal_'] = df['Subtotal'].str[1:] df['Shipping Charge_'] = df['Shipping Charge_'].str[1:] df['Tax Before Promotions_'] = df['Tax Before Promotions_'].str[1:] df['T

我有6列对象($19.99、$25.99等),我想将它们转换为浮动(19.99、25.99等)。我必须做的第一件事是删除所有这些列的第一个字符。我能做到这一点

df['Subtotal_'] = df['Subtotal'].str[1:]
df['Shipping Charge_'] = df['Shipping Charge_'].str[1:]
df['Tax Before Promotions_'] = df['Tax Before Promotions_'].str[1:]
df['Total Promotions_'] = df['Total Promotions_'].str[1:]
df['Tax Charged_'] = df['Tax Charged_'].str[1:]
df['Total Charged_'] = df['Total Charged_'].str[1:]
我想知道是否有一种方法可以同时完成这些任务。我尝试了这个方法,但没有成功,我得到了一个错误,“AttributeError:'DataFrame'对象没有属性'str'”

试试这个:

cols = ('Subtotal_', 'Shipping Charge_', 'Tax Before Promotions_', 'Total Promotions_', 'Tax Charged_', 'Total Charged_')
for col in cols:
    df[col] = df[col].str[1:]
df.loc[:, list_of_the_columns_to_change] = df[same_list].replace('^\$', '', regex=True)
试试这个:

cols = ('Subtotal_', 'Shipping Charge_', 'Tax Before Promotions_', 'Total Promotions_', 'Tax Charged_', 'Total Charged_')
for col in cols:
    df[col] = df[col].str[1:]
df.loc[:, list_of_the_columns_to_change] = df[same_list].replace('^\$', '', regex=True)

df[col][1:][/code>应该是
df[col].str[1:][/code>。是的,@QuangHoang是对的。快来帮忙!如果你喜欢的话,请考虑接受我的回答。快乐编码!如果可能,最好避免使用regexp。它有时会添加问题我编辑了我的答案,所以如果它位于字符串的开头,它只需替换
$
。什么是“.str[1:]”?正如您可能期望的float或int一样,这可能是问题所在。请展示您为解决此问题而编写的关于您的试用版的工作代码和数据,并提供您希望获得帮助的更具体的错误消息或详细信息。因此,我们可以复制粘贴和复制,这样更容易回答您的问题。请参见此处的MRE: