更明确地说,我有这种类型的数据

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


我正在尝试将它像这样以column = ['date','fruit','trade','quantity']形状直接读取到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


提前致谢

最佳答案

pd.read_csv


  parse_dates:布尔值或整数列表或名称列表或列表列表或字典,默认为False
  
  
  布尔值。如果为True->尝试解析索引。
  整数或名称列表。例如如果[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

09-30 19:30