小编And*_*den的帖子

在datetime,Timestamp和datetime64之间转换

如何将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或者?Timestampnumpy.datetime64dt64 …

python datetime numpy pandas

256
推荐指数
8
解决办法
35万
查看次数

熊猫数(不同)相当于

我使用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)

我怎么能在熊猫中做到这一点?

python group-by count distinct pandas

245
推荐指数
6
解决办法
31万
查看次数

188
推荐指数
7
解决办法
24万
查看次数

找到数字的除法余数

我怎样才能在Python中找到数字的除法余数?

例如:
如果数字为26且分割数为7,则除数余数为5.
(因为7 + 7 + 7 = 21和26-21 = 5.)

python integer-division

139
推荐指数
8
解决办法
51万
查看次数

具有NaN(缺失)值的groupby列

我有一个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都缺少值),并且使用比中位数(通常是随机森林)更复杂的函数,我想避免编写太复杂的代码片段.

有什么建议?我应该为此编写一个函数还是有一个简单的解决方案?

grouping nan pandas

119
推荐指数
7
解决办法
9万
查看次数

将压缩文件作为pandas DataFrame读取

我正在尝试解压缩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能够获取文件,但在错误结束时我得到"不存在".

有人能告诉我我做错了什么吗?

python zip pandas

89
推荐指数
5
解决办法
7万
查看次数

在同一图中绘制不同的DataFrame

我有一个温度文件,有多年的温度记录,格式如下:

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轴是温度.我应该怎么做呢?

python matplotlib pandas

80
推荐指数
4
解决办法
9万
查看次数

将元信息/元数据添加到pandas DataFrame中

是否可以向pandas DataFrame添加一些元信息/元数据?

例如,用于测量数据的仪器名称,负责的仪器等.

一种解决方法是创建一个包含该信息的列,但在每一行中存储单条信息似乎很浪费!

python pandas

73
推荐指数
8
解决办法
3万
查看次数

熊猫:如何更改列的所有值?

我有一个带有一个列的数据框,"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)

python database pandas

69
推荐指数
3
解决办法
13万
查看次数

将DataFrame列表保存到多表Excel电子表格中

如何将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正确地打电话,我应该怎么做才能做到这一点?

python pandas openpyxl

69
推荐指数
2
解决办法
5万
查看次数