我有一个DataFrame
按日期索引的熊猫.有许多列,但许多列仅填充部分时间序列.我想找到非NaN
值的第一个和最后一个值的位置,以便我可以提取日期并查看特定列的时间序列有多长.
有人能指出我如何做这样的事情吗?提前致谢.
我想用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
吗?
编辑:据我所知,一切都表现得如此.跟进是我取代非标准价值的方法吗?有没有更好的方法来取代价值观?
我在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) 我想创建一个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) 我想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()
?
我正在尝试使用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) 我正在写一个函数的一部分应该遍历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) 我想编辑 JupyterLab 深色主题,以便可以清楚地读取内联图上的轴标签。问题示例:
为了解决这个问题,我想将包含图像的输出单元格的背景颜色更改为灰色。我使用 Chrome DevTools 检查网页并找到了该类class="p-Widget jp-RenderedImage jp-mod-trusted jp-OutputArea-output"
。
我注意到我可以通过使用 JupyterLab 浅色主题或在 中使用深色绘图主题来解决此问题matplotlib
,但我想直接解决此问题。我欢迎所有建议或指导资源阅读,这将有助于我理解和解决这个问题。谢谢!
GitHub 上的相关问题:
相关问题:
我正在尝试使用df[df['col'].str.contains("string")]
(在这两个SO问题中描述:1和2)来基于部分字符串匹配来选择行.这是我的代码:
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) 我有一个函数,它需要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 ×9
pandas ×8
python-2.7 ×5
datetime ×1
jupyter-lab ×1
lmfit ×1
match ×1
matplotlib ×1
plot ×1
themes ×1