数据框中每一列和每一行的百分位数
Percentile of every column and row in a dataframe
我有一个类似于下图的 csv。我想计算从 B2 到 X2 的每一行的百分位数 (10,50,90),并将该最终百分位数添加到新列中。本质上,我想找到整个可用记录期间的平均值 (std, cv, sp_tim.....) 值的第 10 个百分位数。
到目前为止,我已经创建了以下代码行以在 python 中将其作为数据帧格式读取。
da = pd.read_csv('Project/11433300_annual_flow_matrix.csv', index_col=0, parse_dates=True)
如果我正确理解了您的问题,那么以下代码可能对您有所帮助:
我使用了一些虚拟数据,并对其进行了与您正在寻找的类似的处理
aq = [1, 2, 2, 3, 3, 4, 4, 5, 7, 8, 10, 11]
aw = [91, 25, 13, 53, 95, 94, 75, 35, 57, 88, 111, 12]
df = pd.DataFrame({'aq': aq, 'aw': aw})
n = df.shape[0]
p = 0.1 #for 10th percentile
position = np.ceil(n*p)
position = int(position)
df.iloc[position,]
请看一下,让我知道这是否适合您。
我有一个类似于下图的 csv。我想计算从 B2 到 X2 的每一行的百分位数 (10,50,90),并将该最终百分位数添加到新列中。本质上,我想找到整个可用记录期间的平均值 (std, cv, sp_tim.....) 值的第 10 个百分位数。
到目前为止,我已经创建了以下代码行以在 python 中将其作为数据帧格式读取。
da = pd.read_csv('Project/11433300_annual_flow_matrix.csv', index_col=0, parse_dates=True)
如果我正确理解了您的问题,那么以下代码可能对您有所帮助:
我使用了一些虚拟数据,并对其进行了与您正在寻找的类似的处理
aq = [1, 2, 2, 3, 3, 4, 4, 5, 7, 8, 10, 11]
aw = [91, 25, 13, 53, 95, 94, 75, 35, 57, 88, 111, 12]
df = pd.DataFrame({'aq': aq, 'aw': aw})
n = df.shape[0]
p = 0.1 #for 10th percentile
position = np.ceil(n*p)
position = int(position)
df.iloc[position,]
请看一下,让我知道这是否适合您。