小编Ced*_*olo的帖子

检查pandas DataFrame中的特定值(在单元格中)是否为NaN,无法使用ix或iloc

可以说我有以下内容pandas DataFrame:

import pandas as pd
df = pd.DataFrame({"A":[1,pd.np.nan,2], "B":[5,6,0]})
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

>>> df
     A  B
0  1.0  5
1  NaN  6
2  2.0  0
Run Code Online (Sandbox Code Playgroud)

第一种选择

我知道一种方法来检查特定值是否NaN为,如下所示:

>>> df.isnull().ix[1,0]
True
Run Code Online (Sandbox Code Playgroud)

第二种选择(不工作)

我认为下面的选项,使用ix,也可以,但它不是:

>>> df.ix[1,0]==pd.np.nan
False
Run Code Online (Sandbox Code Playgroud)

我也尝试iloc过相同的结果:

>>> df.iloc[1,0]==pd.np.nan
False
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用ix或检查这些值iloc:

>>> df.ix[1,0]
nan
>>> df.iloc[1,0]
nan
Run Code Online (Sandbox Code Playgroud)

那么,为什么第二种选择不起作用呢?是否可以NaN使用ix或检查值iloc

python nan dataframe pandas

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

如何在Windows中的Python 3.9下pip安装pickle?

我需要在 Windows 10pickle下安装该软件包Python 3.9

我尝试过的

当我尝试时pip install pickle得到:

错误:找不到满足pickle要求的版本(来自版本:无)错误:找不到pickle的匹配发行版

然后我尝试使用此问题中建议的解决方案pip install pickle5,但出现以下错误:

错误:需要 Microsoft Visual C++ 14.0 或更高版本。使用“Microsoft C++ 构建工具”获取它:https ://visualstudio.microsoft.com/visual-cpp-build-tools/

然后,我尝试安装错误建议的工具,但再次尝试后收到相同的错误消息pip install pickle5

问题

pickle在 Windows 10下安装软件包的正确方法是什么Python 3.9

更新

无需安装pickle模块,因为它已经随Python 3.x. 只需要做import pickle,瞧!

python windows pip pickle python-3.x

11
推荐指数
1
解决办法
9万
查看次数

如何检测数据在DataFrame中线性变化的连续跨度?

我正在尝试检测连续的跨度,其中相关变量在DataFrame中的某些数据中线性变化.数据中可能存在许多满足此要求的跨度.我使用ransac基于使用RANSAC的鲁棒线性模型估计开始了我的方法.但是,我在使用该示例进行数据时遇到问题.

目的

检测相关变量,其中相关变量在数据内线性变化.要检测的跨度由超过20个连续数据点组成.期望的输出将是放置连续跨度的范围日期.

玩具示例

在下面的玩具示例代码中,我生成随机数据,然后设置数据的两个部分以创建线性变化的连续跨度.然后我尝试将线性回归模型拟合到数据中.我使用的其余代码(这里没有显示)只是使用RANSAC页面的Robust线性模型估计中的其余代码.但是我知道我需要更改剩余的代码才能达到目标.

import pandas as pd
import matplotlib.pyplot as plt
from sklearn import linear_model, datasets
import numpy as np

## 1. Generate random data for toy sample
times = pd.date_range('2016-08-10', periods=100, freq='15min')
df = pd.DataFrame(np.random.randint(0,100,size=(100, 1)), index=times, columns=["data"])

## 2. Set line1 within random data
date_range1_start = "2016-08-10 08:15"
date_range1_end = "2016-08-10 15:00"
line1 = df.data[date_range1_start:date_range1_end]
value_start1 = 10
values1 = range(value_start1,value_start1+len(line1))
df.data[date_range1_start:date_range1_end] = values1

## 3. …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas ransac scikit-learn

6
推荐指数
2
解决办法
260
查看次数

如何使用包含字符串的某些列在 Pandas DataFrame 上绘制平行坐标?

我想为pandas包含带有数字的列和其他包含字符串作为值的列的DataFrame绘制平行坐标。

问题描述

我有以下测试代码,用于绘制带有数字的平行坐标:

import pandas as pd
import matplotlib.pyplot as plt
from pandas.tools.plotting import parallel_coordinates

df = pd.DataFrame([["line 1",20,30,100],\
    ["line 2",10,40,90],["line 3",10,35,120]],\
    columns=["element","var 1","var 2","var 3"])
parallel_coordinates(df,"element")
plt.show()
Run Code Online (Sandbox Code Playgroud)

最终显示以下图形: 在此处输入图片说明

但是,我想尝试的是向我的绘图中添加一些带有字符串的变量。但是当我运行以下代码时:

df2 = pd.DataFrame([["line 1",20,30,100,"N"],\
    ["line 2",10,40,90,"N"],["line 3",10,35,120,"N-1"]],\
    columns=["element","var 1","var 2","var 3","regime"])
parallel_coordinates(df2,"element")
plt.show()
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ValueError:float() 的无效文字:N

我想这意味着parallel_coordinates函数不接受字符串。

我正在尝试做的示例

我正在尝试做类似这个例子的事情,其中​​种族和性别是字符串而不是数字:

包含字符串值的平行坐标图

有没有办法使用 执行这样的图形pandas parallel_coordinates?如果没有,我怎么能尝试这样的图形?也许与matplotlib

我必须提到我特别在Python 2.5下寻找 带有 pandas 版本的解决方案0.9.0

python matplotlib dataframe pandas parallel-coordinates

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

git clone因"致命:内存不足,malloc失败"错误而失败

当我从我的项目的裸存储库执行git克隆时,在本地服务器上,我收到以下错误消息:

致命:内存不足,malloc失败(试图分配2251896833字节)警告:克隆成功,但结帐失败.您可以使用'git status'检查已检出的内容,然后使用'git checkout -f HEAD'重试结帐

我尝试~/.gitconfig按照这个问题的答案更新我的文件,关闭git bash,重新启动并重试没有任何结果.

我最终尝试了以下配置,但结果仍然相同:

$ cat .gitconfig
[core]
        packedGitLimit = 1024m
        packedGitWindowSize = 1024m
[pack]
        deltaCacheSize = 1024m
        packSizeLimit = 1024m
        windowMemory = 1024m
[http]
        postBuffer = 157286400
Run Code Online (Sandbox Code Playgroud)

我甚至试过git gc在另一台机器上,但不知道如何将裸存储库也用于垃圾收集.

我在4GB内存git version 2.14.2.windows.132 bits机器下使用Windows 7.

如何在git clone上解决这个致命错误?

memory git git-clone

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

如何获取 pandas DateTimeIndex 中的日期时间索引?

datetime有没有办法直接获取a 中某个元素的索引DateTimeIndex

我有以下玩具示例代码,在将其转换DateTimeIndexlist.

import pandas as pd
import datetime

year = 2020
minutesStep = 10
dateTimeStr = "2020-01-01 00:40:00"

datesTimes = pd.date_range(start='1/1/'+str(year), end='1/1/'+str(year+1), freq=str(minutesStep)+'min')
dateTimeObj = datetime.datetime.strptime(dateTimeStr, '%Y-%m-%d %H:%M:%S')

l = datesTimes.tolist()
i = l.index(dateTimeObj)
print i
print datesTimes[i]
Run Code Online (Sandbox Code Playgroud)

这输出了预期的内容:

>>> 
4
2020-01-01 00:40:00
Run Code Online (Sandbox Code Playgroud)

不过我想直接从DateTimeIndex. 那可能吗?

python pandas datetimeindex

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

带有熊猫系列的 matplotlib 双条形图

我有以下几点:

indyes = tuple(yesSeries.index)
indno = tuple(nodSeries.index)
width = 3

p1 = plt.bar(indyes, yesSeries, label="Example one", color='SkyBlue')
p2 = plt.bar(indno, nodSeries, label="Example two", color='IndianRed')
plt.legend()
plt.xlabel('bar number')
plt.ylabel('bar height')

plt.title('Epic Graph\nAnother Line! Whoa')

plt.show()
Run Code Online (Sandbox Code Playgroud)

它将我的图形绘制为堆积条形图: 在此处输入图片说明

当我尝试添加+ width到第二个条形图时,indno + width它们没有堆叠,而是并排,我收到以下错误:TypeError: can only concatenate tuple (not "int") to tuple

我已将 Pandas 系列设置为一个元组以提取日期和计数信息。

如何获得两个平行的垂直条形图?

tuples matplotlib bar-chart pandas

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

Python:如何为 Pandas DataFrame 创建带有离线绘图的阶梯图?

假设我们DataFrame生成了以下和相应的图表:

import pandas as pd
import plotly
from plotly.graph_objs import Scatter

df = pd.DataFrame({"value":[10,7,0,3,8]},
index=pd.to_datetime([
"2015-01-01 00:00",
"2015-01-01 10:00",
"2015-01-01 20:00",
"2015-01-02 22:00",
"2015-01-02 23:00"]))
plotly.offline.plot({"data": [Scatter( x=df.index, y=df["value"] )]})
Run Code Online (Sandbox Code Playgroud)

情节图

预期成绩

如果我使用以下代码:

import matplotlib.pyplot as plt
plt.step(df.index, df["value"],where="post")
plt.show()
Run Code Online (Sandbox Code Playgroud)

我得到如下的步骤图:

阶梯图

我怎样才能得到与step函数相同的结果,但offline plotly改为使用?

python plot dataframe pandas plotly

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

无法将系列转换为 <class 'int'`>

我有一组带有 Age 列的数据。我想删除所有年龄超过 90 且小于 1856 的行。

这是 df 的负责人:

在此处输入图片说明

这是我尝试的: 在此处输入图片说明

python pandas

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