相关疑难解决方法(0)

分配pandas dataframe列dtypes

我想设置dtype多列的s pd.Dataframe(我有一个文件,我必须手动解析到列表列表,因为该文件不适合pd.read_csv)

import pandas as pd
print pd.DataFrame([['a','1'],['b','2']],
                   dtype={'x':'object','y':'int'},
                   columns=['x','y'])
Run Code Online (Sandbox Code Playgroud)

我明白了

ValueError: entry not a 2- or 3- tuple
Run Code Online (Sandbox Code Playgroud)

我可以设置它们的唯一方法是循环遍历每个列变量并重铸astype.

dtypes = {'x':'object','y':'int'}
mydata = pd.DataFrame([['a','1'],['b','2']],
                      columns=['x','y'])
for c in mydata.columns:
    mydata[c] = mydata[c].astype(dtypes[c])
print mydata['y'].dtype   #=> int64
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

python pandas

94
推荐指数
5
解决办法
14万
查看次数

使用NumPy的loadtxt()和genfromtxt的'dtype'有哪些可用的数据类型?

有哪些可用的numpy.loadtxtnumpy.genfromtxt用于导入具有不同数据类型的表数据,有哪些可用的缩写(例如i32表示整数)?

这篇文章演示了条件的使用,如果有人可能会详细说明,我很好奇.

python numpy

42
推荐指数
2
解决办法
7万
查看次数

Pandas DataFrame存储列表为字符串:如何转换回列表?

我有一个n- by- m的 Pandas DataFrame df定义如下.(我知道这不是最好的方法.对于我在实际代码中尝试做的事情是有意义的,但这个帖子的TMI就是这样,所以请理解我的方法,这种方法适用于我的特定场景.)

>>> df = DataFrame(columns=['col1'])
>>> df.append(Series([None]), ignore_index=True)
>>> df
Empty DataFrame
Columns: [col1]
Index: []
Run Code Online (Sandbox Code Playgroud)

我将列表存储在此DataFrame的单元格中,如下所示.

>>> df['column1'][0] = [1.23, 2.34]
>>> df
     col1
0  [1, 2]
Run Code Online (Sandbox Code Playgroud)

出于某种原因,DataFrame将此列表存储为字符串而不是列表.

>>> df['column1'][0]
'[1.23, 2.34]'
Run Code Online (Sandbox Code Playgroud)

我有两个问题要问你.

  1. 为什么DataFrame将列表存储为字符串,是否有解决此问题的方法?
  2. 如果没有,那么是否有一种Pythonic方法将此字符串转换为列表?

更新

我使用的DataFrame已经保存并从CSV格式加载.这种格式而不是DataFrame本身将列表从字符串转换为文字.

python string list dataframe pandas

41
推荐指数
4
解决办法
3万
查看次数

熊猫的 pd.NA 与 np.nan

pd.NAnp.nan与熊猫相比。哪一个与 pandas 一起使用以及为什么使用?它们与 pandas 的主要优点和缺点是什么?

一些使用它们的示例代码:

import pandas as pd
import numpy as np

df = pd.DataFrame({ 'object': ['a', 'b', 'c',pd.NA],
                   'numeric': [1, 2, np.nan , 4],
                    'categorical': pd.Categorical(['d', np.nan,'f', 'g'])
                 })
Run Code Online (Sandbox Code Playgroud)

输出:

|    | object   |   numeric | categorical   |
|---:|:---------|----------:|:--------------|
|  0 | a        |         1 | d             |
|  1 | b        |         2 | nan           |
|  2 | c        |       nan | f             |
|  3 | <NA>     |         4 | g             |
Run Code Online (Sandbox Code Playgroud)

python numpy dataframe pandas

14
推荐指数
5
解决办法
7480
查看次数

Pandas 自动推断最佳数据类型:str 到 int 不起作用

在超过 100 列的数据框中,我希望 pandas (v1.4.2)自动将所有列转换为“最佳”数据类型。根据文档df.convert_dtypes()df.infer_objects()应该可以解决问题。考虑以下示例:

>>df = pd.DataFrame({"A":["1","2"], "C":["abc","bcd"]})
>>df
   A    C
0  1  abc
1  2  bcd

>>df.dtypes
A    object
C    object
dtype: object

>>df.convert_dtypes().dtypes
A    string
C    string
dtype: object

>>df.infer_objects().dtypes
A    object
C    object
dtype: object
Run Code Online (Sandbox Code Playgroud)

为什么列A没有转换成int?如果我尝试错误的 pandas 方法,有什么替代方法?

python dataframe pandas dtype

3
推荐指数
1
解决办法
784
查看次数

标签 统计

python ×5

pandas ×4

dataframe ×3

numpy ×2

dtype ×1

list ×1

string ×1