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,不客气。我觉得评论太多了,所以我决定给你一个综合答案的链接……当然可以。起初我以为这是熊猫特有的,但现在我知道了。