我需要在熊猫数据帧中找到本地最大值和最小值,起初看起来这和熊猫找到本地最大值和最小值是一样的问题,但建议的解决方案似乎都不正确。
In[876]: import pandas as pd
...:
...: df = pd.DataFrame({'data': [1, 1, 2, 2, 1, 0, 0, -2, 0]})
...:
...: # Test 1, missing max in df.iloc[3], min correct
...: df['min'] = df.data[(df.data.shift(1) > df.data) & (df.data.shift(-1) > df.data)]
...: df['max'] = df.data[(df.data.shift(1) < df.data) & (df.data.shift(-1) < df.data)]
...:
In[877]: df
Out[877]:
data min max
0 1 NaN NaN
1 1 NaN NaN
2 2 NaN NaN
3 2 NaN NaN
4 1 NaN NaN
5 0 NaN NaN
6 0 NaN NaN
7 -2 -2.0 NaN
8 0 NaN NaN
In[878]:
In[878]: # Test 2, max incorrect, min incorrect
...: # max in iloc = 3, 6
...: # min in iloc = 1, 7
...: df['min'] = df.data[(df.data.shift(1) >= df.data) & (df.data.shift(-1) > df.data)]
...: df['max'] = df.data[(df.data.shift(1) <= df.data) & (df.data.shift(-1) < df.data)]
...:
In[879]: df
Out[879]:
data min max
0 1 NaN NaN
1 1 1.0 NaN
2 2 NaN NaN
3 2 NaN 2.0
4 1 NaN NaN
5 0 NaN NaN
6 0 NaN 0.0
7 -2 -2.0 NaN
8 0 NaN NaN
我想确定局部最小值和最大值,而不是平台值。正确的标识是:
一个解决方案是开始写循环和如果/其他,但它变得越来越丑陋...我猜可能有更简单的解决方案,使用熊猫,我缺乏一些知识,任何帮助都将不胜感激。
我对Python和Stack Overflow都是新手,所以我希望你能原谅任何新手的错误,干杯。
IIUC,您想在唯一的连续值上应用本地最大值和最小值,所以执行以下操作:
import pandas as pd
df = pd.DataFrame({'data': [1, 1, 2, 2, 1, 0, 0, -2, 0]})
# remove consecutive duplicates
res = df[df['data'] != df['data'].shift()]
# find min and max
res['min'] = res.data[(res.data.shift(1) > res.data) & (res.data.shift(-1) > res.data)]
res['max'] = res.data[(res.data.shift(1) < res.data) & (res.data.shift(-1) < res.data)]
# put back in original df
output = pd.concat((df, res[['min', 'max']]), axis=1)
print(output)
输出
data min max
0 1 NaN NaN
1 1 NaN NaN
2 2 NaN 2.0
3 2 NaN NaN
4 1 NaN NaN
5 0 NaN NaN
6 0 NaN NaN
7 -2 -2.0 NaN
8 0 NaN NaN
我有一个熊猫数据框,有两列,一列是温度,另一列是时间。 我想做第三和第四列,叫做最小和最大。这些列中的每一个都将填充nan's,除非有一个局部min或max,那么它将具有该极值的值。 这里是一个数据的样本,本质上我试图识别图中所有的峰值和低点。 有没有内置的熊猫工具可以做到这一点?
问题内容: 我有一个数据框,看起来像: 我希望按年份分组,然后总结sum_col。此外,我需要查找一周的最早日期和最新日期。第一部分很简单: 我试图用这个来找到最小/最大日期,但是没有成功: 如何找到最早/最新出现的日期? 问题答案: 您需要组合适用于同一列的函数,如下所示:
问题内容: 我有一个包含屏幕名称,tweet,收藏夹等的Pandas DataFrame。我想找到“ favcount”(我已经做过)的最大值,并返回该“ tweet”的屏幕名称 我似乎找不到任何东西,任何人都可以帮助我朝正确的方向发展吗? 问题答案: 使用 来获取最大价值的指标。那你可以用 编辑: 现已弃用,切换为
问题内容: 创建一个将根据年份重置的序列。考虑以9位数开头000000001且最大为999999999的序列。 假设Date为30/12/2017,seq为000012849,所以当日期为01/01/2018时,我希望seq为000000001。 问题答案: 创建一个定期计划作业,该作业在每年的1月1日午夜重新设置顺序。 类似于(假设您有执行重置的过程):
假设这条线是由熊猫的离散随机数组成的。我怎样才能找到A、B、C、D点? A是第一点和C之间的最高点 C是A和B之间的最低点 B是C和D之间的最高点 您可以使用这些数据来测试:[1, 2, 3, 10, 13, 15, 20, 50, 49, 49, 32, 33, 35, 36, 35, 34, 33, 34, 35, 36, 30, 27, 22, 15, 15, 17, 20, 27, 30,
问题内容: 我试图从整个熊猫数据框中获取最大值。我对它来自哪个行或列不感兴趣。我只对数据框中的单个最大值感兴趣。 这是我的数据框: 看起来是这样的: 预期产量: 我当时假设df.max()会完成这项工作,但是它为每一列返回一个最大值,但是我对此并不感兴趣。我需要整个数据框的最大值。 问题答案: 可以使用获得的所有的数据帧中值的最大值,或者我们使用: 最大值而不是43.0,因为在CPython2中,