在 Python 中查找熊猫的每个单元格中的最大值/最小值



我是熊猫的新手,我有一个csv数据文件,我正在尝试查找特定列的每一行的最大值和最小值。该数据如下所示:

0          PK,K,1,2,3,4,5
1    PK,K,1,2,3,4,5,6,7,8
2    PK,K,1,2,3,4,5,6,7,8
3                   K,1,2
4                PK,K,1,2

这是我的 CSV 文件的 1 列(~5 行中的前 600 行)。如您所见,它在每个单元格中都有多个值(这些是学校提供的成绩)。如何从此信息中找到最小值和最大值?提前致谢

我尝试使用 dataFrame.max()/dataFrame.min(),但这给出了整行或整列的最大/最小值。我的问题更特定于单元格。我也想过将每个单元格转换为列表,然后我可以使用 python 默认函数找到最大值/最小值,但我真的不想那样做。我想坚持使用熊猫和数据帧

length_ = gradesOffered.shape
print(length_)
print(gradesOffered.iloc[0:5,0])
print(gradesOffered.iloc[0:5,0].max())
Output:
(660, 1)
0          PK,K,1,2,3,4,5
1    PK,K,1,2,3,4,5,6,7,8
2    PK,K,1,2,3,4,5,6,7,8
3                   K,1,2
4                PK,K,1,2
Name: Grades_Offered_All, dtype: object
PK,K,1,2,3,4,5,6,7,8

我的预期输出是(在"最大"情况下):

(660, 1)
0          PK,K,1,2,3,4,5
1    PK,K,1,2,3,4,5,6,7,8
2    PK,K,1,2,3,4,5,6,7,8
3                   K,1,2
4                PK,K,1,2
Name: Grades_Offered_All, dtype: object
0    5
1    8
2    8
3    2
4    2

我的预期输出是(在"分钟"的情况下):

(660, 1)
0          PK,K,1,2,3,4,5
1    PK,K,1,2,3,4,5,6,7,8
2    PK,K,1,2,3,4,5,6,7,8
3                   K,1,2
4                PK,K,1,2
Name: Grades_Offered_All, dtype: object
0    PK
1    PK
2    PK
3    K
4    PK

您应该创建自己的函数来查找最小值/最大值,并使用 .apply 创建具有每行最小值和最大值的列。尝试根据单个单元格位置找到最小值/最大值会很混乱。

例:

import pandas as pd

def max_school(row):
order = ['PK', 'K', '1', '2', '3', '4', '5', '6', '7', '8']
sort = sorted(row.dropna(), key=lambda x:order.index(x))
return sort[-1]
def min_school(row):
order = ['PK', 'K', '1', '2', '3', '4', '5', '6', '7', '8']
sort = sorted(row.dropna(), key=lambda x:order.index(x))
return sort[0]
df = pd.read_csv('something.csv', dtype=str)
df['Max'] = df.apply(lambda x: max_school(x), axis=1)
df['Min'] = df.apply(lambda x: min_school(x), axis=1)
print(df)

这输出:

1    2    3    4    5    6    7  8  9 10 Max Min
0  NaN  NaN  NaN   PK    K    1    2  3  4  5   5  PK
1   PK    K    1    2    3    4    5  6  7  8   8  PK
2   PK    K    1    2    3    4    5  6  7  8   8  PK
3  NaN  NaN  NaN  NaN  NaN  NaN  NaN  K  1  2   2   K
4  NaN  NaN  NaN  NaN  NaN  NaN   PK  K  1  2   2  PK

最新更新