2016-02-25 26 views
2

我想将现有的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:布尔
  • value2:int

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

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

谢谢!

回答

2

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) 
+0

这种方法是最优化的方法吗?在我的理解中,一开始我们处理创建DataFrame对象的数据,接下来我们必须再次处理它以更改数据类型。 – pga

1

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

要使用特定列作为索引,可以使用数据帧实例的​​方法。

+0

'dtype' kwarg用于为整个DataFrame设置dtype – Alex

+0

是的。你是对的。我编辑了我的答案。 – kikocorreoso