使用.to_csv method to convert Dataframes
时。我得到日期字符串的随机日期格式。
对于csv中的给定列,日期格式在mm / dd / yy和mm-dd-yyyy之间奇怪地波动。原始数据帧没有此问题。
.csv文件
中的示例列03-01-2014
10/19/13
04-11-2014
09/19/14
09/19/14
12/18/13
03-10-2013
04/13/14
我使用以下代码生成日期列
def Get_random_date():
t=datetime.datetime.now()
mon=t.month
dy=t.day
yr=t.year
year = random.choice(range(2013, yr+1))
month = random.choice(range(1, mon+1))
day = random.choice(range(1, 28))
return pd.datetime(year,month,day)
def Generate_Dates():
DateCreated = pd.Series([])
date_created=Get_random_date()
DateCreated=date_created.strftime('%x')
return (DateCreated)
...
row=pd.DataFrame(index=index,columns=dt.columns)
row['Date Created']=Generate_Dates()
...
new_dt.to_csv('new_data.csv')
.csv文件
中的示例列03-01-2014
10/19/13
04-11-2014
09/19/14
09/19/14
12/18/13
03-10-2013
04/13/14
答案 0 :(得分:0)
您是否指定了date_format?
df.to_csv(filename, date_format='%Y%m%d')
答案 1 :(得分:0)
也许你可以这样做:
df.to_csv(filename, date_format='%Y/%m/%d')
与@bcollins类似,但请注意每个字符串标识符之间的/
。
或者您可以像这样使用Pandas to_datetime(args)功能:
dates = [ "03-01-2014",
"10/19/13",
"04-11-2014",
"09/19/14",
"09/19/14",
"12/18/13",
"03-10-2013",
"04/13/14" ]
df = pd.DataFrame(dates)
df = pd.to_datetime(df[0])
显然,您会将0
替换为数据框中日期所在列的名称,但我相信您会明白这一点。
这导致:
0 2014-03-01
1 2013-10-19
2 2014-04-11
3 2014-09-19
4 2014-09-19
5 2013-12-18
6 2013-03-10
7 2014-04-13
Name: 0, dtype: datetime64[ns]
然后,您可以将其写入所需的csv
文件。