我有一个数据框如下
      itm Date                  Amount 
67    420 2012-09-30 00:00:00   65211
68    421 2012-09-09 00:00:00   29424
69    421 2012-09-16 00:00:00   29877
70    421 2012-09-23 00:00:00   30990
71    421 2012-09-30 00:00:00   61303
72    485 2012-09-09 00:00:00   71781
73    485 2012-09-16 00:00:00     NaN
74    485 2012-09-23 00:00:00   11072
75    485 2012-09-30 00:00:00  113702
76    489 2012-09-09 00:00:00   64731
77    489 2012-09-16 00:00:00     NaN
当我尝试将一个函数应用于Amount列时,我得到以下错误.
ValueError: cannot convert float NaN to integer
我尝试使用数学模块中的.isnan应用函数我已经尝试过pandas .replace属性我尝试了pandas 0.9中的.sparse数据属性我也尝试过函数中的NaN == NaN语句.我也看过这篇文章如何在R数据帧中用零替换NA值?同时看一些其他文章.我尝试的所有方法都没有工作或者没有认识到NaN.任何提示或解决方案将不胜感激.
我有以下文件(df_SOF1.csv),它是100万条记录长
Location,Transport,Transport1,DateOccurred,CostCentre,D_Time,count
0,Lorry,Car,07/09/2012,0,0:00:00,2
1,Lorry,Car,11/09/2012,0,0:00:00,5
2,Lorry,Car,14/09/2012,0,0:00:00,30
3,Lorry,Car,14/09/2012,0,0:07:00,2
4,Lorry,Car,14/09/2012,0,0:29:00,1
5,Lorry,Car,14/09/2012,0,3:27:00,3
6,Lorry,Car,14/09/2012,0,3:28:00,4
7,Lorry,Car,21/09/2012,0,0:00:00,13
8,Lorry,Car,27/09/2012,0,0:00:00,8
9,Lorry,Car,28/09/2012,0,0:02:00,1
10,Train,Bus,03/09/2012,2073,7:49:00,1
11,Train,Bus,05/09/2012,2073,7:50:00,1
12,Train,Bus,06/09/2012,2073,7:52:00,1
13,Train,Bus,07/09/2012,2073,7:48:00,1
14,Train,Bus,08/09/2012,2073,7:55:00,1
15,Train,Bus,11/09/2012,2073,7:49:00,1
16,Train,Bus,12/09/2012,2073,7:52:00,1
17,Train,Bus,13/09/2012,2073,7:50:00,1
18,Train,Bus,14/09/2012,2073,7:54:00,1
19,Train,Bus,18/09/2012,2073,7:51:00,1
20,Train,Bus,19/09/2012,2073,7:50:00,1
21,Train,Bus,20/09/2012,2073,7:51:00,1
22,Train,Bus,21/09/2012,2073,7:52:00,1
23,Train,Bus,22/09/2012,2073,7:53:00,1
24,Train,Bus,23/09/2012,2073,7:49:00,1
25,Train,Bus,24/09/2012,2073,7:54:00,1
26,Train,Bus,25/09/2012,2073,7:55:00,1
27,Train,Bus,26/09/2012,2073,7:53:00,1
28,Train,Bus,27/09/2012,2073,7:55:00,1
29,Train,Bus,28/09/2012,2073,7:53:00,1
30,Train,Bus,29/09/2012,2073,7:56:00,1
我正在使用pandas来分析它我一直在尝试至少40个小时来找到一种方法来分组数据,我可以聚合时间列 D_Time
我已经加载了我创建数据帧所需的模块,请参阅下面DateOccured的索引
df_SOF1 = read_csv('/users/fabulous/documents/df_SOF1.csv', index_col=3, parse_dates=True) # read file from disk
我可以按任何列分组或遍历任何行,例如
df_SOF1.groupby('Location').sum()
但是我没有找到一种方法来总结并D_Time使用pandas 取出列的平均值.我已经阅读了20多篇关于timedeltas等的文章,但我仍然不是在大熊猫中如何做到这一点.
任何可以让我对D_Time列进行算术运算的解决方案都将受到赞赏.(即使它必须在熊猫之外完成).
我认为一种可能的解决方案是将D_Time列更改为秒.
_ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ …
作为数据分析应用程序的一部分,我将以下数据框从文件导入到pandas中.
date,value,cat
1/6/2000,5,a
2/6/2000,10,b
3/6/2000,15,c
我需要更改日期格式
import pandas.io.date_converters as conv
import pandas as pd
df = pd.read_csv('temp.csv', index_col=0, parse_dates=True, dayfirst=True)
print df
运行上述命令后,数据帧在ipython中如下所示
                 value  cat
date                                      
2000-01-06       5    a
2000-02-06       10   b
2000-03-06       15   c
df.to_csv('test.csv') # write dataframe to disk
将文件保存到磁盘并再次读回之后,使用textwrangler,ipython或任何其他编辑器仍然会显示时间格式.
                         value  cat
date                                      
2000-01-06 00:00:00       5    a
2000-02-06 00:00:00       10   b
2000-03-06 00:00:00       15   c
什么是我可以永久删除日期的时间部分的最简单方法.
欢迎任何简单的解决方 提前致谢.