Python 仅对数据帧的某些类型的列执行numpy随机选择

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 我希望得到一个

我有一个数据框架,其中包含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

我希望得到一个名为“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