相关疑难解决方法(0)

更改Pandas中列的数据类型

我想将表格(表示为列表列表)转换为Pandas DataFrame.作为一个极其简化的例子:

a = [['a', '1.2', '4.2'], ['b', '70', '0.03'], ['x', '5', '0']]
df = pd.DataFrame(a)
Run Code Online (Sandbox Code Playgroud)

将列转换为适当类型的最佳方法是什么,在这种情况下,将第2列和第3列转换为浮点数?有没有办法在转换为DataFrame时指定类型?或者最好先创建DataFrame,然后循环遍历列以更改每列的类型?理想情况下,我想以动态方式执行此操作,因为可能有数百列,我不想确切地指定哪些列属于哪种类型.我可以保证的是,每列包含相同类型的值.

python types casting dataframe pandas

688
推荐指数
11
解决办法
132万
查看次数

修改熊猫数据框中的许多列

我已经坚持了一段时间,似乎没有任何帮助。

我正在读很多原始数据。由于变量由于各种原因(我不在乎)而使用字母,因此某些变量作为对象进入对象。

因此,我想通过运行一个相当大的列子集,pandas.to_numeric(___ ,error='coerce')以强制将它们强制转换为int或float(再次,我不太在乎哪一个,只是它们是数字。

我可以很容易地逐列进行此操作:

df['col_name'] = pd.to_numeric(df['col_name'], errors='coerce') 
Run Code Online (Sandbox Code Playgroud)

但是,我有60列要转换为..所以我认为这样可以工作:

numeric = ['lots', 'a', 'columns']
for item in numeric:
    df_[item] = pd.to_numeric(df[item], errors='coerce')
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Traceback (most recent call last):

File "/Users/____/anaconda/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 2885, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)

File "<ipython-input-53-43b873fbd712>", line 2, in <module>
df_detail[item] = pd.to_numeric(dfl[item], errors='coerce')

File "/Users/____/anaconda/lib/python2.7/site-packages/pandas/tools/util.py", line 101, in to_numeric
raise TypeError('arg must be a list, tuple, 1-d array, or Series')

TypeError: arg must be a list, tuple, 1-d array, or Series
Run Code Online (Sandbox Code Playgroud)

我尝试了许多版本。这与列表或浏览列表有关。当for循环简单地要求df(item).describe() …

python list dataframe pandas

5
推荐指数
1
解决办法
2139
查看次数

标签 统计

dataframe ×2

pandas ×2

python ×2

casting ×1

list ×1

types ×1