Python数据帧选择区域

2024-06-02 06:16:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我是这个论坛和Python的新手,所以不要对我太苛刻

我试图创建一个新的列,基于几个值之间的转换。以这个数据帧为例:

df = pd.DataFrame({'Durchfluss': {60: 4.273504273504258, 61: 3.66300366300365, 62: 3.0525030525030417, 63: 2.4420024420024333, 64: 2.4420024420024333, 65: 7.020757020756996, 66: 14.041514041514047, 67: 27.77777777777779, 68: 52.808302808302784, 69: 94.32234432234432, 70: 121.79487179487181, 71: 139.1941391941392, 72: 134.00488400488402, 73: 130.03663003663002, 74: 123.32112332112332, 75: 119.04761904761907, 76: 111.72161172161171, 77: 103.17460317460319, 78: 97.06959706959705, 79: 91.26984126984128, 80: 86.99633699633702, 81: 81.50183150183149, 82: 81.19658119658119, 83: 80.28083028083027, 84: 75.3968253968254, 85: 72.95482295482297, 86: 69.90231990231987, 87: 67.15506715506714, 88: 65.01831501831501, 89: 64.4078144078144, 90: 61.05006105006105, 91: 60.13431013431014, 92: 57.3870573870574, 93: 56.47130647130649, 94: 54.334554334554305, 95: 53.7240537240537, 96: 53.11355311355309, 97: 52.50305250305248, 98: 50.671550671550655, 99: 48.22954822954822, 100: 45.17704517704518, 101: 42.12454212454214, 102: 38.156288156288134, 103: 33.57753357753357, 104: 31.135531135531135, 105: 28.083028083028093, 106: 26.25152625152627, 107: 24.11477411477414, 108: 22.28327228327226, 109: 20.146520146520132, 110: 18.925518925518915, 111: 17.7045177045177, 112: 16.178266178266178, 113: 14.041514041514047, 114: 13.125763125763134, 115: 12.515262515262526, 116: 11.599511599511613, 117: 10.378510378510397, 118: 9.768009768009788, 119: 9.15750915750918, 120: 9.15750915750918, 121: 8.547008547008572, 122: 7.631257631257604, 123: 7.020757020756996, 124: 6.4102564102563875, 125: 5.799755799755779, 126: 5.189255189255171, 127: 4.5787545787545625, 128: 3.968253968253954, 129: 3.968253968253954, 130: 3.357753357753346, 131: 2.7472527472527375, 132: 2.4420024420024333, 133: 5.799755799755779, 134: 11.599511599511613, 135: 23.809523809523835, 136: 44.871794871794876, 137: 79.97557997557998, 138: 121.1843711843712, 139: 137.05738705738707, 140: 139.4993894993895}, 'Digital': {60: 273, 61: 273, 62: 273, 63: 273, 64: 273, 65: 273, 66: 17, 67: 17, 68: 19, 69: 17, 70: 19, 71: 17, 72: 17, 73: 17, 74: 17, 75: 17, 76: 17, 77: 17, 78: 17, 79: 17, 80: 17, 81: 17, 82: 17, 83: 17, 84: 17, 85: 17, 86: 17, 87: 17, 88: 17, 89: 17, 90: 17, 91: 17, 92: 17, 93: 17, 94: 17, 95: 17, 96: 17, 97: 17, 98: 17, 99: 273, 100: 273, 101: 273, 102: 273, 103: 273, 104: 273, 105: 273, 106: 273, 107: 273, 108: 273, 109: 273, 110: 273, 111: 273, 112: 273, 113: 273, 114: 273, 115: 273, 116: 273, 117: 273, 118: 273, 119: 273, 120: 273, 121: 273, 122: 273, 123: 273, 124: 273, 125: 273, 126: 273, 127: 273, 128: 273, 129: 273, 130: 273, 131: 273, 132: 273, 133: 273, 134: 17, 135: 17, 136: 19, 137: 17, 138: 17, 139: 17, 140: 17}})

下图中的框是我要划分的组,然后作为值写入新列(1代表红色框,2代表黑色框,等等):

Cycle

我计算了极值,现在把它们作为两个数组:

max_indexes=argrelextrema(dataset.Durchfluss.values, np.greater, order=12)[0]
max_values = [dataset.Durchfluss[i] for i in max_indexes] #array of max values
min_indexes=argrelextrema(dataset.Durchfluss.values, np.less, order=12)[0]#array of indexes of the locals maxima
min_values = [dataset.Durchfluss[i] for i in min_indexes]

粉线是数据集(dataset.Digital)中的一列

有没有人能给我一个答案或想法,告诉我如何设置以下两个时间跨度的值:

  • 极小值和dataset.Digitaldataset.group = 1)的下降沿
  • 下降沿和最大值(dataset.group = 2
  • dataset.Digitaldataset.group = 3)的最大值和上升沿
  • 上升沿和极小值(dataset.group = 4

我希望我能理解我的意思


Tags: of数据fornpgrouporder代表min