小编Jas*_*son的帖子

在Pandas DataFrame中找到第一个和最后一个非NaN值

我有一个DataFrame按日期索引的熊猫.有许多列,但许多列仅填充部分时间序列.我想找到非NaN值的第一个和最后一个值的位置,以便我可以提取日期并查看特定列的时间序列有多长.

有人能指出我如何做这样的事情吗?提前致谢.

python datetime pandas

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

熊猫:SettingWithCopyWarning

我想用Pandas DataFrame大于任意数字(在这种情况下NaN为100)的值替换(因为这个值很大,表示实验失败).以前我用它来替换不需要的值:

sve2_all[sve2_all[' Hgtot ng/l'] > 100] = np.nan
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

-c:3: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_index,col_indexer] = value instead
C:\Users\AppData\Local\Enthought\Canopy32\User\lib\site-packages\pandas\core\indexing.py:346: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_index,col_indexer] = value instead
self.obj[item] = s
Run Code Online (Sandbox Code Playgroud)

这个StackExchange问​​题来看,似乎有时候这个警告可以被忽略,但我不能很好地跟进讨论,以确定这是否适用于我的情况.这个警告基本上让我知道我会覆盖我的一些价值观DataFrame吗?

编辑:据我所知,一切都表现得如此.跟进是我取代非标准价值的方法吗?有没有更好的方法来取代价值观?

python python-2.7 pandas chained-assignment

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

使用Pandas数据帧索引作为matplotlib图中x轴的值

我在Pandas中有时间序列dateframe,有许多列我想绘制.有没有办法将x轴设置为始终使用索引dateframe?当我使用.plot()Pandas中的方法时,x轴格式正确,但是当我传递日期和列时,我想直接绘制到matplotlib,图表没有正确绘制.提前致谢.

plt.plot(site2.index.values, site2['Cl'])
plt.show()
Run Code Online (Sandbox Code Playgroud)

产量

仅供参考:site2.index.values产生这个(我为了简洁我切掉了中间部分):

array([
    '1987-07-25T12:30:00.000000000+0200',
    '1987-07-25T16:30:00.000000000+0200',
    '2010-08-13T02:00:00.000000000+0200',
    '2010-08-31T02:00:00.000000000+0200',
    '2010-09-15T02:00:00.000000000+0200'
], 
dtype='datetime64[ns]')
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib pandas

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

从字典创建pandas数据框

我想创建一个DataFrame来自dict哪里dict keys将是列名称,dict values将是行.我正在尝试pandas.DataFrame.from_dict()转换我的字典.这是我的代码:

import pandas as pd
import datetime

current_time1 = datetime.datetime.now()
record_1 = {'Date':current_time1, 'Player':'John','Difficulty':'hard', 'Score':0}
df = pd.DataFrame.from_dict(record_1, orient='columns')
display(df)

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-4-597ef27e82c8> in <module>()
      1 record_1 = {'Date':current_time1, 'Player':'John','Difficulty':'hard', 'Score':0}
----> 2 df = pd.DataFrame.from_dict(record_1, orient='columns')
      3 display(df)

C:\Users\Jason\AppData\Local\Enthought\Canopy32\User\lib\site-packages\pandas\core\frame.pyc in from_dict(cls, data, orient, dtype)
    635             raise ValueError('only recognize index or columns for orient')
    636 
--> 637         return cls(data, index=index, columns=columns, dtype=dtype)
    638 …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 pandas

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

如何从pandas.DataFrame.info()返回一个字符串

我想pandas.DataFrame.info()tkinter文本小部件上显示输出,所以我需要一个字符串.但无论如何我都可以改变这个pandas.DataFrame.info()回报NoneType吗?

import pandas as pd
import numpy as np

data = np.random.rand(10).reshape(5,2)
cols = 'a', 'b'
df = pd.DataFrame(data, columns=cols)
df_info = df.info()
print(df_info)
type(df_info)
Run Code Online (Sandbox Code Playgroud)

我想做点什么:

info_str = ""
df_info = df.info(buf=info_str)
Run Code Online (Sandbox Code Playgroud)

是否可以从中pandas返回一个字符串对象DataFrame.info()

python pandas

10
推荐指数
1
解决办法
3424
查看次数

ValueError:输入包含nan值 - 来自lmfit模型,尽管输入不包含NaN

我正在尝试使用lmfit (链接到docs)构建模型,我似乎无法找出为什么我ValueError: The input contains nan values在尝试适应模型时不断获得.

from lmfit import minimize, Minimizer, Parameters, Parameter, report_fit, Model
import numpy as np

def cde(t, Qi, at, vw, R, rhob_cb, al, d, r):
    # t (time), is the independent variable
    return Qi / (8 * np.pi * ((at * vw)/R) * t * rhob_cb * (np.sqrt(np.pi * ((al * vw)/R * t))))  * \
        np.exp(- (R * (d - (t * vw)/ R)**2) / (4 * (al * vw) * …
Run Code Online (Sandbox Code Playgroud)

python lmfit

7
推荐指数
1
解决办法
4645
查看次数

迭代函数中的Pandas系列行

我正在写一个函数的一部分应该遍历a的行Series.该函数应该遍历DataFrame传递给它的列的行,即df ['col'],但是当我尝试使用时,.iterrows我得到一个错误,即a Series没有该属性并且使用.iteritems会产生下面的错误.有没有其他方法来遍历列的行?我需要能够访问索引和列值.

def get_RIMsin(df, obs, rimcol):
    """dataframe, obs column,rim column"""    
    maxval =df['Mmedian'].max()
    minval =df['Mmedian'].min()
    dfrange = maxval-minval
    amplitude = dfrange/2

    convert = (2*np.pi)/365
    startday = obs.idxmax().dayofyear
    sinmax = 91

    for row in rimcol.iteritems: #This is where I'd like to go through rows of a series
        diff = sinmax - startday
        adjday = row.dayofyear + diff
        adjsin = np.sin(adjday * convert)
        df['RIMsine'] = row + adjsin
    return df

get_RIMsin(sve_DOC, sve_DOC['DOC_mg/L'], sve_DOC['RIMsDOC']) …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 pandas

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

如何编辑 JupyterLab 主题

我想编辑 JupyterLab 深色主题,以便可以清楚地读取内联图上的轴标签。问题示例: 深色主题的问题示例

为了解决这个问题,我想将包含图像的输出单元格的背景颜色更改为灰色。我使用 Chrome DevTools 检查网页并找到了该类class="p-Widget jp-RenderedImage jp-mod-trusted jp-OutputArea-output"

我想更改的 Div 类

我注意到我可以通过使用 JupyterLab 浅色主题或在 中使用深色绘图主题来解决此问题matplotlib,但我想直接解决此问题。我欢迎所有建议或指导资源阅读,这将有助于我理解和解决这个问题。谢谢!

GitHub 上的相关问题:

相关问题:

python themes jupyter-lab

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

使用字符串搜索Pandas系列会产生KeyError

我正在尝试使用df[df['col'].str.contains("string")](在这两个SO问题中描述:12)来基于部分字符串匹配来选择行.这是我的代码:

import requests
import json
import pandas as pd
import datetime

url = "http://api.turfgame.com/v4/zones/all" # get request returns .json 
r = requests.get(url)
df = pd.read_json(r.content) # create a df containing all zone info

print df[df['region'].str.contains("Uppsala")].head()

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-23-55bbf5679808> in <module>()
----> 1 print df[df['region'].str.contains("Uppsala")].head()

C:\Users\User\AppData\Local\Enthought\Canopy32\User\lib\site-packages\pandas\core\frame.pyc in __getitem__(self, key)
   1670         if isinstance(key, (Series, np.ndarray, list)):
   1671             # either boolean or fancy integer index
-> 1672             return self._getitem_array(key)
   1673         elif isinstance(key, …
Run Code Online (Sandbox Code Playgroud)

python match python-2.7 pandas

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

从 Pandas 列索引中提取列名

我有一个函数,它需要Pandas在散点图上绘制列。我想使用列的名称作为轴标签。这是我的意思的一个例子:

def plotscatter(x,y):
    plt.scatter(x, y)
    plt.xlabel(x)
    plt.ylabel(y)
plotscatter(df['1stcol'],df['2ndcol'])
Run Code Online (Sandbox Code Playgroud)

我只想提取引号中的文本,即 1stcol 和 2ndcol。如果我按原样使用 x 和 y,我会得到列名,后跟所有值作为轴标签。

是否有内置的方法或功能?像 x.columnname()

python-2.7 pandas

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