小编Pau*_*l H的帖子

将SAS数字转换为python datetime

这可能是一个简单的解决方案,但我将如何转换SAS日期时间编号(自1960年1月1日以来的秒数.)pandas列中的一个值的示例是1716470000.

我试过了:

df['PyDatetime'] = pd.to_datetime(df,infer_datetime_format=True)
Run Code Online (Sandbox Code Playgroud)

我得到像'1970-01-01 00:00:01.725480'这样的数字

python format datetime pandas

5
推荐指数
1
解决办法
1184
查看次数

设置颜色条以在 matplotlib 中显示超出数据范围的值

我正在尝试创建一个图形,其中颜色条将超出数据范围(高于数据的最大值)。最终目的是我需要绘制一系列模型输出的图像(随着时间的推移),每个小时都存储在一个单独的文件中。我希望所有图形的颜色条都相同,以便它们可以加入动画。

这是一个示例脚本:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 360, 1.5)
y = np.arange(-90, 90, 1.5)
lon, lat = np.meshgrid(x, y)
noise = np.random.random(lon.shape) # values in range [0, 1)

fig = plt.figure()
ax = fig.add_subplot(111)
plt.hold(True)
plt.contourf(lon, lat, noise)
plt.colorbar()
Run Code Online (Sandbox Code Playgroud)

这会产生下图:

在此处输入图片说明

我一直在尝试使用我在网上找到的两种方法将颜色条的限制设置为数据范围之外的值(例如,从 -1. 到 2.):

在绘图线内设置 vmin=-1 和 vmax=2:

fig = plt.figure()
ax = fig.add_subplot(111)
plt.hold(True)
plt.contourf(lon, lat, noise, vmin=-1., vmax=2.)
plt.colorbar()
Run Code Online (Sandbox Code Playgroud)

这似乎只更改显示的颜色,因此颜色图中的第一种颜色将对应于 -1,最后一种颜色对应于 2,但它不会扩展颜色条以显示这些值(下面链接中的左图)。

另一种是尝试在颜色栏中强制执行刻度以扩展到该范围:

fig = plt.figure()
ax = fig.add_subplot(111)
plt.hold(True)
plt.contourf(lon, lat, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib colorbar

5
推荐指数
1
解决办法
5340
查看次数

在 groupby-apply 操作期间附加列

语境

我有几组数据(由带数据框的 3 列定义),并且想要执行线性拟合和每组,然后附加估计值(具有拟合的下限和上限)。

问题

执行操作后,我收到与最终与原始数据帧的形状相关的错误

演示问题的示例:

from io import StringIO       # modern python
#from StringIO import StringIO # old python
import numpy
import pandas

def fake_model(group, formula):
    # add the results to the group
    modeled = group.assign(
        fit=numpy.random.normal(size=group.shape[0]),
        ci_lower=numpy.random.normal(size=group.shape[0]),
        ci_upper=numpy.random.normal(size=group.shape[0])
    )

    return modeled

raw_csv = StringIO("""\
location,days,era,chemical,conc
MW-A,2415,modern,"Chem1",5.4
MW-A,7536,modern,"Chem1",0.21
MW-A,7741,modern,"Chem1",0.15
MW-A,2415,modern,"Chem2",33.0
MW-A,2446,modern,"Chem2",0.26
MW-A,3402,modern,"Chem2",0.18
MW-A,3626,modern,"Chem2",0.26
MW-A,7536,modern,"Chem2",0.32
MW-A,7741,modern,"Chem2",0.24
""")

data = pandas.read_csv(raw_csv)

modeled = (
    data.groupby(by=['location', 'era', 'chemical'])
        .apply(fake_model, formula='conc ~ days')
        .reset_index(drop=True)
)
Run Code Online (Sandbox Code Playgroud)

这引发了一个很长的追溯,其关键是:

[snip]   
C:\Miniconda3\envs\puente\lib\site-packages\pandas\core\internals.py in construction_error(tot_items, block_shape, axes, …
Run Code Online (Sandbox Code Playgroud)

python pandas

5
推荐指数
1
解决办法
450
查看次数

Python Pandas,仅重新采样特定时间

我的熊猫版本是0.18,我有一个分钟数据,如下所示:

Time                              
2009-01-30 09:30:00  85.11  100.11
2009-01-30 09:39:00  84.93  100.05
2009-01-30 09:40:00  84.90  100.00
2009-01-30 09:45:00  84.91   99.94
2009-01-30 09:48:00  84.81   99.90
2009-01-30 09:55:00  84.78  100.00
2009-01-30 09:56:00  84.57  100.10
2009-01-30 09:59:00  84.25  100.41
2009-01-30 10:00:00  84.32  100.60
2009-01-30 10:06:00  84.23  101.49
2009-01-30 10:09:00  84.15  101.47
Run Code Online (Sandbox Code Playgroud)

我想仅使用9:30和16:00的数据,并以78分钟的间隔重新采样数据(即将9:30到16:00之间的时间分成5个相等的部分).我的代码如下:

Data= Data.between_time('9:30','16:00')
tframe = '78T'
hourlym = Data.resample(tframe, base=30).mean()
Run Code Online (Sandbox Code Playgroud)

输出:

Time                                      
2009-01-30 08:18:00  85.110000  100.110000
2009-01-30 09:36:00  83.950645  101.984516
2009-01-30 10:54:00  83.372294  103.093824
2009-01-30 12:12:00  83.698624  102.566897
2009-01-30 13:30:00  83.224397  103.076667
2009-01-30 14:48:00 …
Run Code Online (Sandbox Code Playgroud)

python pandas

5
推荐指数
1
解决办法
3085
查看次数

使用相同列,不同索引级别对齐DataFrame

我有两个pandas DataFrames - weightLand Use列上有一个简单的索引.concentration有一个MultiIndex on Land UseParameter.

import pandas
from io import StringIO

conc_string = StringIO("""\
Land Use,Parameter,1E,1N,1S,2
Airfield,BOD5 (mg/l),0.418,0.118,0.226,1.063
Airfield,Ortho P (mg/l),0.002,0.001,0.001,0.002
Airfield,TSS (mg/l),1.773,11.47,0.862,0.183
Airfield,Zn (mg/l),0.001,0.001,4.95E-05,0.001
"Commercial",BOD5 (mg/l),0.036,0.0419,,0.315
"Commercial",Cu (mg/l),4.37E-05,7.34E-05,,0.00039
"Commercial",O&G (mg/l),0.0385,0.127,,0.263
Open Space,TSS (mg/l),0.371,3.01,1.209,0.147
Open Space,Zn (mg/l),0.0127,0.0069,0.0132,0.007
"Parking Lot",BOD5 (mg/l),0.924,0.0668,2.603,3.19
"Parking Lot",O&G (mg/l),1.02,0.149,1.347,1.88
"Rooftops",BOD5 (mg/l),0.135,1.00,0.0562,0.310""")

weight_string = StringIO("""\
Land Use,1E,1N,1S,2
Airfield,0.511,0.0227,0.0616,0.394
Commercial,0.0005,0.1704,0,0.1065
Open Space,0.0008,0.005,0.0002,0.0004
"Parking Lot",0.33,0.514,0.252,0.171
Rooftops,0.081,0.028,8.50E-05,0.003""")

concentration = pandas.read_csv(conc_string, index_col=[0,1])
weight = pandas.read_csv(weight_string, index_col=0)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,柱(1E,1N,1S和2)是排水池.

我想做的是将所有浓度除以Parameter盆地的重量(柱名)和 …

python pandas

4
推荐指数
1
解决办法
1505
查看次数

无法在 python pandas 中获得未堆叠的条形图

这很奇怪。我似乎无法在 python pandas 中获得未堆叠的条形图(与 pandas 官方指南不同)。这些条似乎只是重叠的,而不是横向放置的。知道为什么会这样吗?

df.plot(kind='bar',stacked=False, figsize=(20,15), alpha=0.4)
Run Code Online (Sandbox Code Playgroud)

这是图像的链接: 在此输入图像描述

这是一个示例 df

                OLS     Ridge     Lasso        EN
BN         0.008935  0.013937  0.000000  0.000000
BO         0.037947  0.034341  0.021778  0.021771
BP         0.205764  0.190278  0.184766  0.179000
CB         0.302772  0.106399  0.161487  0.076948
CD         0.464572  0.378660  0.424983  0.401792
CF         0.062425  0.006078  0.000000 -0.000000
CL        -0.005794  0.002631  0.000000  0.001082
CN         0.012761  0.011331  0.010272  0.010476
Run Code Online (Sandbox Code Playgroud)

python bar-chart pandas

4
推荐指数
1
解决办法
5602
查看次数

在pandas系列中填充NA值并停止

我正在分析一个时间序列,并根据某些标准,我可以挑选出事件的开始结束的行.在这一点上,我的系列看起来像这样(为了简洁,我遗漏了一些重复的值):

安装程序

import numpy as np
import pandas
from pandas import Timestamp

datadict = {'event': {
  Timestamp('2010-01-01 00:20:00', tz=None): 'event start',
  Timestamp('2010-01-01 00:30:00', tz=None): '--',
  Timestamp('2010-01-01 00:40:00', tz=None): '--',
  Timestamp('2010-01-01 00:50:00', tz=None): '--',
  Timestamp('2010-01-01 01:00:00', tz=None): '--',
  Timestamp('2010-01-01 01:10:00', tz=None): 'event end',
  Timestamp('2010-01-01 01:20:00', tz=None): '--',
  Timestamp('2010-01-01 02:20:00', tz=None): '--',
  Timestamp('2010-01-01 02:30:00', tz=None): 'event start',
  Timestamp('2010-01-01 02:40:00', tz=None): '--',
  Timestamp('2010-01-01 02:50:00', tz=None): '--',
  Timestamp('2010-01-01 03:00:00', tz=None): '--',
  Timestamp('2010-01-01 03:10:00', tz=None): '--',
  Timestamp('2010-01-01 03:20:00', tz=None): '--',
  Timestamp('2010-01-01 …
Run Code Online (Sandbox Code Playgroud)

python pandas

4
推荐指数
1
解决办法
857
查看次数

通过geopandas Concat多个shapefile

我正在尝试通过实现以下方法组合多个shapefile:

import geopandas as gpd
import pandas as pd

for i in range(10,56):
    interesting_files = "/Users/m3105/Downloads/area/tl_2015_{}_arealm.shp".format(i)
    gdf_list = []
    for filename in sorted(interesting_files):
        gdf_list.append(gpd.read_file((filename)))
        full_gdf = pd.concat(gdf_list)
Run Code Online (Sandbox Code Playgroud)

其中目录/Users/m3105/Downloads/area有多个shapefile,例如tl_2015_01_arealm.shp,tl_2015_02_arealm.shp一直到最多tl_2015_56_arealm.shp.我想结合所有这些shapefile,避免重复他们的标题.但是,每当我尝试使用上面的代码连接文件时,我会收到以下错误:

ValueError: Null layer: u''

通常,我知道如何连接csv文件,但我注意到如何连接shapefile.我非常感谢任何帮助

python geopandas

4
推荐指数
2
解决办法
2569
查看次数

Pandas Dataframe:使用计数功能过滤数据

我有一个 Pandas 数据框,我想通过应用基于计数函数的过滤器来从中创建一个新的数据框,以便只选择计数等于指定数字的那些列。

例如在下面的数据框中:

month_end   Col A       Col B       Col C       Col D
200703      NaN          NaN         NaN         NaN
200704      0.084       0.152       0.142      0.0766
200705      0.124       0.123       0.020       NaN 
200706      NaN         0.191       0.091       0.149   
200707      -0.136      0.047       0.135      -0.127
Run Code Online (Sandbox Code Playgroud)

如果 my_variable = 4,则 df1 应仅包含 Col B 和 Col D 以及索引 month_end。

我该怎么做呢?

python count dataframe pandas

4
推荐指数
1
解决办法
162
查看次数

NSLocalizedStringFromTableInBundle:没有获取key的值

我不能够获得values用于keysInfoPlist.

label.text = NSLocalizedStringFromTableInBundle(@"keyone", 
                                                nil, 
                                                AppDelegateObj.langBundle, nil));
Run Code Online (Sandbox Code Playgroud)

InfoPlist.strings这里有一个价值

"keyone" = "value one";
Run Code Online (Sandbox Code Playgroud)

当我运行我的应用程序时,它显示UILabel值为keyone

为什么?

iphone localizable.strings nslocalizedstring ios

3
推荐指数
1
解决办法
4700
查看次数