Python 行中数字和字符串的最小值/最大值

Python 行中数字和字符串的最小值/最大值,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个较长的数据集,希望获得一行中的最小/最大值: County Year1 Year2 Year3 Year4 1 Autauga 54660 55253 51253 56253 输出应该是 County Year1 Year2 Year3 Year4 Min Max Max-Min 1 Autauga 54660 55253 51253 56253 51253 56

我有一个较长的数据集,希望获得一行中的最小/最大值:

    County   Year1   Year2   Year3   Year4
1   Autauga  54660   55253   51253   56253       
输出应该是

    County   Year1   Year2   Year3   Year4   Min     Max    Max-Min
1   Autauga  54660   55253   51253   56253   51253   56253  5000
我的第一个镜头产生了一个字符串作为最大值(我在论坛上读到了所有的原因):

1) 如何排除第一列以使max函数正确运行(我仍然需要输出中的县)

2) 如何运行max、min函数并一次性计算每个值的差值

干杯,
P

您可以通过一点

iloc
切片魔术来完成这项工作

df['Max'] = df.iloc[:, 1:].max(axis=1)
df['Min'] = df.iloc[:, 1:].min(axis=1)
df['Max - Min'] = df['Max'] - df['Min']


您可以通过一点
iloc
切片魔术来完成这一点

df['Max'] = df.iloc[:, 1:].max(axis=1)
df['Min'] = df.iloc[:, 1:].min(axis=1)
df['Max - Min'] = df['Max'] - df['Min']


还可以指定仅对数值元素执行此操作

df['Max'] = df.max(axis=1, numeric_only=True)
df['Min'] = df.min(axis=1, numeric_only=True)
df['Max - Min'] = df['Max'] - df['Min']

# if you only need "Max - Min"
df['Max - Min'] = df.max(1, numeric_only=True) - df.min(1, numeric_only=True)

默认情况下,
max
函数将尝试使用所有内容。使用额外的参数,它将只包括计算中包含浮点、int和布尔值的列。请在

上阅读有关它的详细信息。您还可以指定只对数值元素执行此操作

df['Max'] = df.max(axis=1, numeric_only=True)
df['Min'] = df.min(axis=1, numeric_only=True)
df['Max - Min'] = df['Max'] - df['Min']

# if you only need "Max - Min"
df['Max - Min'] = df.max(1, numeric_only=True) - df.min(1, numeric_only=True)
默认情况下,
max
函数将尝试使用所有内容。使用额外的参数,它将只包括计算中包含浮点、int和布尔值的列。更多信息,请访问IIUC:

In [43]: df = df.assign(**{'Max-Min':df.max(1)-df.min(1)})

In [44]: df
Out[44]:
    County  Year1  Year2  Year3  Year4  Max-Min
1  Autauga  54660  55253  51253  56253     5000
IIUC:


你能告诉我双紫菀**是什么吗?@Tai,@Tai,不客气。我觉得评论太多了,所以我决定给你一个综合答案的链接……当然可以。起初我以为这是熊猫特有的,但现在我知道了。你能告诉我双紫菀**是什么吗?@Tai,@Tai,不客气。我觉得评论太多了,所以我决定给你一个综合答案的链接……当然可以。起初我以为这是熊猫特有的,但现在我知道了。