我正在使用以下df:
c.sort_values('2005', ascending=False).head(3)
GeoName ComponentName IndustryId IndustryClassification Description 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014
37926 Alabama Real GDP by state 9 213 Support activities for mining 99 98 117 117 115 87 96 95 103 102 (NA)
37951 Alabama Real GDP by state 34 42 Wholesale trade 9898 10613 10952 11034 11075 9722 9765 9703 9600 9884 10199
37932 Alabama Real GDP by state 15 327 Nonmetallic mineral products manufacturing 980 968 940 1084 861 724 714 701 589 641 (NA)
字符串
我想在所有年份上强制使用数字:
c['2014'] = pd.to_numeric(c['2014'], errors='coerce')
型
有没有简单的方法可以做到这一点,或者我必须把它们都打出来?
6条答案
按热度按时间kgqe7b3p1#
更新:不需要事后转换值,可以在阅读CSV时on-the-fly:
字符串
如果需要将多列转换为数字数据类型-请使用以下技术:
样品来源DF:
型
将选定列转换为数值数据类型:
型
PS如果要选择所有
string
(object
)列,使用以下简单技巧:型
fiei3ece2#
另一种方法是使用
apply
,一个内衬:字符串
o2rvlv0m3#
您可以用途:
字符串
filter
的另一个解决方案:型
sy5wg1nm4#
字符串
evrscar25#
如果您正在查找列的范围,可以尝试以下操作:
字符串
上面的例子将类型转换为float,所有列都从第7列开始到末尾。当然,您可以使用不同的类型或不同的范围。
我认为当你有很大范围的列要转换和很多行时,这是很有用的。它不会让你自己去检查每一行-我相信numpy会更有效。
只有当您知道所有必需的列都只包含数字时,这才有用-它不会将“坏值”(如字符串)更改为NaN。
xpszyzbs6#
字符串