特灵从列中删除逗号和美元符号。但是当我这样做时,表将它们打印出来,并且仍然保留它们。是否有其他方法可以使用panda函数删除命令和美元符号?我无法在API文档中找到任何内容,或者可能我找错了地方
import pandas as pd
import pandas_datareader.data as web
players = pd.read_html('http://www.usatoday.com/sports/mlb/salaries/2013/player/p/')
df1 = pd.DataFrame(players[0])
df1.drop(df1.columns[[0,3,4, 5, 6]], axis=1, inplace=True)
df1.columns = ['Player', 'Team', 'Avg_Annual']
df1['Avg_Annual'] = df1['Avg_Annual'].replace(',', '')
print (df1.head(10))
6条答案
按热度按时间eanckbw91#
必须根据http://pandas.pydata.org/pandas-docs/stable/text.html访问
str
属性交替地;
如果你想把打字的时间放在可读性之上。
5gfr0r5j2#
无耻地从this answer中窃取... * 但是 *,这个答案只是改变了一个角色,并没有完成酷:因为它需要一个字典,所以你可以一次替换任意数量的字符,也可以替换任意数量的列。
@shivsn抓到你需要使用
regex=True
;您已经了解了replace(但也没有尝试在多列上使用它,或者同时在美元符号和逗号上使用它)。这个答案只是简单地把我从其他人那里找到的细节拼在一个地方给那些像我一样的人(例如noobs to
python
andpandas
)。希望它能有所帮助。cvxl0en23#
@bernie的回答对你的问题很有帮助。下面是我对Pandas载入数值数据这一普遍问题的看法。
通常数据源是直接使用的报表,因此会出现额外的格式,如
%
、千位分隔符、货币符号等,所有这些都对阅读有用,但会给默认解析器带来问题,我的解决方案是将列类型转换为string。逐个替换这些符号,然后将其转换回适当的数字格式。拥有一个只保留[0-9.]
的样板函数是很诱人的,但是会导致千位分隔符和小数点互换的问题,这是我的代码,我把它 Package 成一个函数,然后根据需要应用。ukdjmx9f4#
这对我很有效。|“系指或:
06odsfpq5#
我用这个逻辑
g52tjvyc6#
当我遇到这个问题的时候,我就是这样解决的。