当前位置: 首页 > 面试题库 >

如何在Pandas DataFrame中按列设置dtypes

麻昌翰
2023-03-14
问题内容

我想将一些数据带入pandas DataFrame,并为导入时的每一列分配dtypes。我希望能够对具有许多不同列的较大数据集执行此操作,但是,例如:

myarray = np.random.randint(0,5,size=(2,2))
mydf = pd.DataFrame(myarray,columns=['a','b'], dtype=[float,int])
mydf.dtypes

结果是:

TypeError:不了解数据类型

我尝试了其他一些方法,例如:

mydf = pd.DataFrame(myarray,columns=['a','b'], dtype={'a': int})

TypeError:“类型”类型的对象没有len()

如果我把dtype=(float,int)它应用于两列的浮点格式。

最后,我只希望能够向它传递数据类型列表,就像我向它传递列名称列表一样。


问题答案:

从pandas 0.24.2版(当前的稳定版本)开始,不能将docs类型的数据类型的显式列表传递给DataFrame构造函数:

dtype : dtype, default None

    Data type to force. Only a single dtype is allowed. If None, infer

但是,dataframe类确实具有静态方法,允许您将numpy结构化数组转换为数据框,因此您可以执行以下操作:

>>> myarray = np.random.randint(0,5,size=(2,2))
>>> record = np.array(map(tuple,myarray),dtype=[('a',np.float),('b',np.int)])
>>> mydf = pd.DataFrame.from_records(record)
>>> mydf.dtypes
a    float64
b      int64
dtype: object


 类似资料:
  • 问题内容: 我正在尝试使用以下代码设置按钮文本: 这是我的FXML: 但这行不通,我不明白为什么,还有其他人知道如何使用JavaFX设置按钮文本吗?>。>; 我觉得JavaFX不像Swing那样简单…但是无论如何,有人知道我在做什么错吗?另外,有没有人知道有什么资源可以学习FXML?我喜欢FXML而不是用Java进行编码,但是似乎没有太多的东西,我是否是世界上唯一喜欢FXML而不是JavaFX G

  • 在我的活动中,我有一个listview和一个按钮。每一个都有各自的目的。 我的listview显示另一个活动中的项目详细信息。 问题是如何在相同的活动中为按钮实现onClickListener?

  • 问题内容: 我能够设置列的标题,但不能在JTable第一列的所有行中设置图标。 和下面的BuildTable()方法中的行。 我们如何为第一列的所有行设置它?我已经尝试过for循环,但没有让行迭代来设置图标。还是还有其他方法? 问题答案: 无需创建自定义渲染。JTable已经支持Icon渲染器。您只需要告诉表使用此渲染器即可。这是通过重写表模型的getColumnClass(…)方法来完成的:

  • 在下面的示例中: 网格中的坐标0,0,3,3是什么意思?它代表什么?任何帮助都很感激,非常感谢。 在下面的javafx程序中,我只想设置计算器示例的TextField和按钮: 我想在TextField下面设置按钮,但在最终编译的程序中,+、*、-、/按钮被推到了右边,我试图根据上面的注释来安排按钮,非常感谢,任何帮助都非常感谢

  • 我正在使用Spring JPA并希望将值设置为外键列。这里是我的实体和存储库。 该用户存在于Device表中,但表中的userId列未设置该值。请帮我解决这个问题。 那么,这意味着无论何时保存设备,我都必须从user表中获取设备的user?

  • 问题内容: 如何删除后退按钮文本。 当前的后退按钮: <返回 所需的后退按钮: <其他 这些都不起作用: 后退按钮属于上 一个 视图控制器,而不是当前在屏幕上显示的那个。 要修改后退按钮,您应该 在 启动segue的视图控制器上 在 按下按钮 之前 对其 进行 更新: 斯威夫特3、4和5: 要么