我需要在熊猫数据帧中找到本地最大值和最小值,起初看起来这和熊猫找到本地最大值和最小值是一样的问题,但建议的解决方案似乎都不正确。
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,
问题内容: 我正在寻找python中整数的最小值和最大值。例如,在Java中,我们有和。python中是否有类似的东西? 问题答案: Python 3 在Python 3中,此问题不适用。普通int类型是无界的。 但是,你实际上可能正在寻找有关当前解释器的字长的信息,在大多数情况下,该信息将与机器的字长相同。该信息在Python 3中仍以形式提供,这是一个有符号的单词可以表示的最大值。等效地,它是