Python 仅对数据帧的某些类型的列执行numpy随机选择
我有一个数据框架,其中包含int和string类型的列。 我想添加一个名为“MIN”的列,并为每行选择包含小数点后最小值的列名 当我删除所有字符串列时,它工作得非常完美,现在我需要添加一个条件来跳过“object”列,但一切都失败了——将它们存储在单独的数据框中,添加和条件等等Python 仅对数据帧的某些类型的列执行numpy随机选择,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我有一个数据框架,其中包含int和string类型的列。 我想添加一个名为“MIN”的列,并为每行选择包含小数点后最小值的列名 当我删除所有字符串列时,它工作得非常完美,现在我需要添加一个条件来跳过“object”列,但一切都失败了——将它们存储在单独的数据框中,添加和条件等等 h_data: size, price, facilities, service, country 9, 101, 6, 9, fr 10, 15, 14, 6, us 8, 54, 9, 8, il 我希望得到一个
h_data:
size, price, facilities, service, country
9, 101, 6, 9, fr
10, 15, 14, 6, us
8, 54, 9, 8, il
我希望得到一个名为“MIN”的新列,该列将包含每行保存最小整数的列名。由于您进行随机选择,只要满足条件,填充哪一列并不重要。使用:
df['MIN']=df.isin(df.min(axis=1)).dot(df.columns+',').str.split(',').str[0]
print(df)
随机选择如何符合您对问题的描述?如果我有两列值相同,我只需要选择其中一列,但必须是随机的
df['MIN']=df.isin(df.min(axis=1)).dot(df.columns+',').str.split(',').str[0]
print(df)
size price facilities service country MIN
0 9 101 6 9 fr facilities
1 10 15 14 6 us service
2 8 54 9 8 il size