我的DataFrame有太多列,无法单独输入所有列。因此,我试图快速循环它们并摆脱美元符号和大量的逗号。这是我到目前为止的代码:
for column in df1:
df1[column] = df1[column].str.lstrip('$')
我收到错误:
AttributeError:只能使用带有字符串值的.str访问器,它在pandas中使用np.object_ dtype
答案 0 :(得分:3)
您可以使用select_dtypes
仅过滤str列:
for col in df.select_dtypes([np.object]):
df[col] = df[col].str.lstrip('$')
示例:
In [309]:
df = pd.DataFrame({'int':np.arange(3), 'float':[0.1,2.3,4.0], 'str':['$d', 'a$', 'asd']})
df
Out[309]:
float int str
0 0.1 0 $d
1 2.3 1 a$
2 4.0 2 asd
In [310]:
for col in df.select_dtypes([np.object]):
df[col] = df[col].str.lstrip('$')
df
Out[310]:
float int str
0 0.1 0 d
1 2.3 1 a$
2 4.0 2 asd