【问题标题】:How to specify type of input data for Pandas DataFrame如何为 Pandas DataFrame 指定输入数据的类型
【发布时间】:2016-02-25 18:12:48
【问题描述】:

我想将现有的 Python 列表转换为 Pandas DataFrame 对象。如何为每列指定数据格式并定义索引列?

这是我的代码示例:

import pandas as pd

data = [[1444990457000286208, 0, 286],
       [1435233159000067840, 0, 68],
       [1431544002000055040, 1, 55]]
df = pd.DataFrame(data, columns=['time', 'value1', 'value2'])

在上面的示例中,我需要为现有列提供以下类型:

  • 时间:datetime64[ns]
  • value1:布尔值
  • 值2:整数

另外时间列应该用作索引列。

默认情况下,所有三列都是 int64,我在 DataFrame 对象创建期间找不到如何指定列类型。

谢谢!

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    value2 已经是正确的 dtype。

    对于time,您可以使用to_datetime 转换为日期时间,然后使用set_index 设置索引。

    对于value1,您可以使用astype 转换为布尔值。

    df['time'] = pd.to_datetime(df['time'])
    df = df.set_index('time')
    df['value1'] = df['value1'].astype(bool)
    

    【讨论】:

    • 这种方法是不是最理想的方法?以我的理解,一开始我们处理数据是为了创建 DataFrame 对象,接下来我们必须再次处理它以更改数据类型。
    【解决方案2】:

    您可以在 pd.DataFrame 对象构造函数中使用dtype 关键字。 Docs。请看@alex answer

    要将特定列用作索引,您可以使用数据框实例的set_index 方法。

    【讨论】:

    • dtype kwarg 用于设置整个DataFrame的dtype
    猜你喜欢
    • 2023-02-11
    • 1970-01-01
    • 2019-02-15
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    相关资源
    最近更新 更多