可以说我有以下内容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?
我需要在 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,瞧!
我正在尝试检测连续的跨度,其中相关变量在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) 我想为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。
当我从我的项目的裸存储库执行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.1的32 bits机器下使用Windows 7.
如何在git clone上解决这个致命错误?
datetime有没有办法直接获取a 中某个元素的索引DateTimeIndex?
我有以下玩具示例代码,在将其转换DateTimeIndex为list.
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. 那可能吗?
我有以下几点:
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 系列设置为一个元组以提取日期和计数信息。
如何获得两个平行的垂直条形图?
假设我们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改为使用?