如何将numpy.datetime64
对象转换为datetime.datetime
(或Timestamp
)?
在以下代码中,我创建了datetime,timestamp和datetime64对象.
import datetime
import numpy as np
import pandas as pd
dt = datetime.datetime(2012, 5, 1)
# A strange way to extract a Timestamp object, there's surely a better way?
ts = pd.DatetimeIndex([dt])[0]
dt64 = np.datetime64(dt)
In [7]: dt
Out[7]: datetime.datetime(2012, 5, 1, 0, 0)
In [8]: ts
Out[8]: <Timestamp: 2012-05-01 00:00:00>
In [9]: dt64
Out[9]: numpy.datetime64('2012-05-01T01:00:00.000000+0100')
Run Code Online (Sandbox Code Playgroud)
注意:从时间戳中获取日期时间很容易:
In [10]: ts.to_datetime()
Out[10]: datetime.datetime(2012, 5, 1, 0, 0)
Run Code Online (Sandbox Code Playgroud)
但是我们如何从()中提取datetime
或者?Timestamp
numpy.datetime64
dt64 …
我使用pandas作为db替代品,因为我有多个数据库(oracle,mssql等),我无法为SQL等价物创建一系列命令.
我在DataFrame中加载了一些表,其中包含一些列:
YEARMONTH, CLIENTCODE, SIZE, .... etc etc
Run Code Online (Sandbox Code Playgroud)
在SQL中,要计算每年不同客户端的数量,请执行以下操作:
SELECT count(distinct CLIENTCODE) FROM table GROUP BY YEARMONTH;
Run Code Online (Sandbox Code Playgroud)
结果就是
201301 5000
201302 13245
Run Code Online (Sandbox Code Playgroud)
我怎么能在熊猫中做到这一点?
JavaScript之间有什么区别
window.location.href = window.location.href
Run Code Online (Sandbox Code Playgroud)
和
window.location.reload()
Run Code Online (Sandbox Code Playgroud)
功能?
我怎样才能在Python中找到数字的除法余数?
例如:
如果数字为26且分割数为7,则除数余数为5.
(因为7 + 7 + 7 = 21和26-21 = 5.)
我有一个DataFrame,其列中包含许多缺失值,我希望将其分组:
import pandas as pd
import numpy as np
df = pd.DataFrame({'a': ['1', '2', '3'], 'b': ['4', np.NaN, '6']})
In [4]: df.groupby('b').groups
Out[4]: {'4': [0], '6': [2]}
Run Code Online (Sandbox Code Playgroud)
看到Pandas已经删除了具有NaN目标值的行.(我想要包含这些行!)
由于我需要很多这样的操作(许多cols都缺少值),并且使用比中位数(通常是随机森林)更复杂的函数,我想避免编写太复杂的代码片段.
有什么建议?我应该为此编写一个函数还是有一个简单的解决方案?
我正在尝试解压缩csv文件并将其传递给pandas,以便我可以处理该文件.
我到目前为止尝试的代码是:
import requests, zipfile, StringIO
r = requests.get('http://data.octo.dc.gov/feeds/crime_incidents/archive/crime_incidents_2013_CSV.zip')
z = zipfile.ZipFile(StringIO.StringIO(r.content))
crime2013 = pandas.read_csv(z.read('crime_incidents_2013_CSV.csv'))
Run Code Online (Sandbox Code Playgroud)
在最后一行之后,虽然python能够获取文件,但在错误结束时我得到"不存在".
有人能告诉我我做错了什么吗?
我有一个温度文件,有多年的温度记录,格式如下:
2012-04-12,16:13:09,20.6
2012-04-12,17:13:09,20.9
2012-04-12,18:13:09,20.6
2007-05-12,19:13:09,5.4
2007-05-12,20:13:09,20.6
2007-05-12,20:13:09,20.6
2005-08-11,11:13:09,20.6
2005-08-11,11:13:09,17.5
2005-08-13,07:13:09,20.6
2006-04-13,01:13:09,20.6
Run Code Online (Sandbox Code Playgroud)
每年都有不同的数字,记录的时间,所以大熊猫的datetimeindices都是不同的.
我想在同一图中绘制不同年份的数据进行比较.X轴是1月到12月,Y轴是温度.我应该怎么做呢?
是否可以向pandas DataFrame添加一些元信息/元数据?
例如,用于测量数据的仪器名称,负责的仪器等.
一种解决方法是创建一个包含该信息的列,但在每一行中存储单条信息似乎很浪费!
我有一个带有一个列的数据框,"Date"
并希望此列中的所有值具有相同的值(仅限年份).例:
City Date
Paris 01/04/2004
Lisbon 01/09/2004
Madrid 2004
Pekin 31/2004
Run Code Online (Sandbox Code Playgroud)
我想要的是:
City Date
Paris 2004
Lisbon 2004
Madrid 2004
Pekin 2004
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
fr61_70xls = pd.ExcelFile('AMADEUS FRANCE 1961-1970.xlsx')
#Here we import the individual sheets and clean the sheets
years=(['1961','1962','1963','1964','1965','1966','1967','1968','1969','1970'])
fr={}
header=(['City','Country','NACE','Cons','Last_year','Op_Rev_EUR_Last_avail_yr','BvD_Indep_Indic','GUO_Name','Legal_status','Date_of_incorporation','Legal_status_date'])
for year in years:
# save every sheet in variable fr['1961'], fr['1962'] and so on
fr[year]=fr61_70xls.parse(year,header=0,parse_cols=10)
fr[year].columns=header
# drop the entire Legal status date column
fr[year]=fr[year].drop(['Legal_status_date','Date_of_incorporation'],axis=1)
# drop every row where GUO Name is empty
fr[year]=fr[year].dropna(axis=0,how='all',subset=[['GUO_Name']])
fr[year]=fr[year].set_index(['GUO_Name','Date_of_incorporation']) …
Run Code Online (Sandbox Code Playgroud) 如何将DataFrame列表导出到一个Excel电子表格中?
国家文件to_excel
:
注意
如果传递现有的ExcelWriter对象,则表单将添加到现有工作簿中.这可用于将不同的DataFrame保存到一个工作簿
writer = ExcelWriter('output.xlsx')
df1.to_excel(writer, 'sheet1')
df2.to_excel(writer, 'sheet2')
writer.save()
在此之后,我想我可以编写一个函数,将一个DataFrame列表保存到一个电子表格中,如下所示:
from openpyxl.writer.excel import ExcelWriter
def save_xls(list_dfs, xls_path):
writer = ExcelWriter(xls_path)
for n, df in enumerate(list_dfs):
df.to_excel(writer,'sheet%s' % n)
writer.save()
Run Code Online (Sandbox Code Playgroud)
但是(带有两个小DataFrame的列表,每个都可以to_excel
单独保存),会引发异常(编辑:删除跟踪):
AttributeError: 'str' object has no attribute 'worksheets'
Run Code Online (Sandbox Code Playgroud)
大概是我没有ExcelWriter
正确地打电话,我应该怎么做才能做到这一点?