python熊猫导出csv格式不同于导入的问题

我对pandas.read_csv函数有一个奇怪的问题。我将数据框导出到csv中,但是当我重新导入相同的csv时,当我尝试合并时,导入的数据不起作用(合并显示了左侧的所有数据,没有尝试过合并)。如果我在将原始数据导出到csv之前使用原始数据,则它工作得很好(合并是完美的)。python熊猫导出csv格式不同于导入的问题

df = df.values_list('id','teacher_id','uniquecount','nonuniquecount','msgcount','ordercount','date','updated','timestamp', flat=False) 

#inserting the collected data into a dateframe for manipulation

df = pd.DataFrame(list(df))

#giving the dataframe column names

df.columns = ['id','teacher_id','uniquecount','nonuniquecount','msgcount','ordercount','date','updated','timestamp']

df = df[['id','teacher_id','uniquecount','nonuniquecount','msgcount','ordercount','date']]

#rename required columns

df.rename(columns={'uniquecount':'Unique Views','nonuniquecount':'Views','msgcount':'Messages','ordercount':'Orders'}, inplace=True)

print df

print df.dtypes

# exporting df out to a csv

# df.to_csv('test.csv', header=True)

# importing the df back from a csv

df = pd.read_csv('test.csv', index_col=0)

print df

print df.dtypes

#insert dates

numdays = 14

base = datetime.datetime.today().date()

date_list = [base - datetime.timedelta(days=x) for x in range(0, numdays)]

dates = pd.DataFrame(date_list)

dates.columns = ['date']

#merge the complete dates with the dateframe

df = pd.merge(dates ,df , on=['date'] , how='left')

# print df

我已经确认并比较了dataframes长得一模一样出口前从CSV导入后,(我打印输出的两倍,出口前和一个后一次),我也查了一下datetypes是全部都一样。

我需要导出csv与外部环境一起工作,因为我不能附加我的本地数据库。

附CMDLINE打印的副本显示,这两个dataframes是完全相似的

附在下面是我导出的csv样品

,id,teacher_id,Unique Views,Views,Messages,Orders,date 

0,47,31,1,6,0,0,2017-05-09

1,56,31,1,9,0,0,2017-05-10

2,67,31,2,11,0,0,2017-05-14

3,71,31,3,15,0,0,2017-05-15

4,79,31,3,17,0,0,2017-06-12

5,83,31,3,18,0,1,2017-06-18

有没有人有任何想法这个奇怪的问题?

回答:

之前调用合并,尝试转换使用to_datetime第一这两个日期被称为在回答here

df.date = pd.to_datetime(df.date) 

dates.date = pd.to_datetime(dates.date)

#merge the complete dates with the dateframe

df = pd.merge(dates ,df , on=['date'] , how='left')

以上是 python熊猫导出csv格式不同于导入的问题 的全部内容, 来源链接: utcz.com/qa/259153.html

回到顶部