2017-03-29 6 views
1

より明確にするために、私はデータpandas.read_csvがdatetime.datetimeオブジェクトにコンパイルされた最初の3つの数値を持つ非常に未処理のCSVファイルを読み取るための正しい設定は何ですか?

2011,1,14, Orange ,Buy,1500, 
2011,1,19, Apple ,Sell,1500, 
2011,1,19, Banana ,Buy,4000, 

のこのタイプを持って、私は列= [「日付」、「フルーツ」、「貿易」、「数量」]でDATAFRAMEに直接それを読んしようとしていますこのような形。

print df_grocer.date 
2011-01-14 16:00:00  
2011-01-19 16:00:00  
2011-01-19 16:00:00  

と事前に

print df_grocer.fruit 
Orange 
Apple 
Banana 

おかげ

答えて

2

pd.read_csv

がparse_dates:ブールまたはint型または名前やリストや辞書のリストのリスト、デフォルトFalse

  • ブール値。 Trueの場合 - >インデックスの解析を試みます。
  • intまたはnameのリスト。例えば[1、2、3] - >列1、2、3を別々の日付列として解析しようとすると。
  • リストのリスト。例えば[[1,3]] - >列1と3を組み合わせて、 という単一の日付列として解析します。
  • dict、 {「FOO」:[1,3]} - >日付として列1,3を解析し、「foo」で

注結果呼び出し:ファストパスは、ISO8601フォーマットの日付のために存在します。

from io import StringIO 
import pandas as pd 

txt = """2011,1,14, Orange ,Buy,1500, 
2011,1,19, Apple ,Sell,1500, 
2011,1,19, Banana ,Buy,4000,""" 

df = pd.read_csv(
    StringIO(txt), 
    skipinitialspace=True, 
    header=None, 
    parse_dates=dict(date=[0, 1, 2]), 
    usecols=[0, 1, 2, 3, 4, 5], 
    names=['_', '_', '_', 'fruit', 'trade', 'quantity'] 
) 


print(df) 

     date  fruit trade quantity 
0 2011-01-14 Orange  Buy  1500 
1 2011-01-19 Apple  Sell  1500 
2 2011-01-19 Banana  Buy  4000 
関連する問題