簡體   English   中英

如何使用數字索引和標題從數據框中獲取最大值

[英]How to get maximum value from dataframe with numeric indexes and headings

我有以下數據幀:

df:

Unnamed: 0          0          1
0          0.0   0.000000        NaN
1          1.0   2.236068   0.000000
2          2.0   3.000000   2.236068
3          NaN   0.000000   1.000000
4          0.0   0.000000        NaN
5          1.0   1.414214   0.000000
6          2.0   2.828427   1.414214
7          NaN   0.000000   1.000000
8          0.0   0.000000        NaN
9          1.0   3.162278   0.000000
10         2.0  11.401754   3.162278
11         NaN   0.000000   1.000000
12         0.0   0.000000        NaN
13         1.0  14.142136   0.000000
14         2.0   2.828427  14.142136

我試圖從每組數據中獲取最大值,問題是我從幾個操作生成了這個數據幀,但最后索引和標題是數字,我不能使用groupbyloc. 我需要的是如下內容:

df1
        0
 1   3.000000
 2   2.828427
 3  11.401754
 4  14.142136

你絕對使用loc 問題是你沒有注意df.columns是整數還是字符串。 既然你遇到了問題,那我猜是字符串。

但是,你要做的事情一點也不清楚

IIUC

m = df['0'] == 0
g = m.cumsum()[~m]
df.loc[~m, '0'].groupby(g).max()

使用.iloccumsum

df.groupby((~df.iloc[:,0].astype(bool)).cumsum()).max()

輸出:

            Unnamed: 0          0          1
Unnamed: 0                                  
1                  2.0   3.000000   2.236068
2                  2.0   2.828427   1.414214
3                  2.0  11.401754   3.162278
4                  2.0  14.142136  14.142136

要獲得列索引1的最大值:

df.groupby((~df.iloc[:,0].astype(bool)).cumsum()).max().iloc[:,1]

輸出:

Unnamed: 0
1     3.000000
2     2.828427
3    11.401754
4    14.142136
Name: 0, dtype: float64

file.csv

0,1,2,3
9,6,7,
0,,,
5,6,2

嘗試:

import pandas as pd

df = pd.read_csv('file.csv', header=-1)
# keep only max per row
print(df.max(axis=1))

輸出:

0    3.0
1    9.0
2    0.0
3    6.0
dtype: float64

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM