熊猫找到DataFrame矩阵的最小值:索引,列

时间:2019-09-06 17:17:17

标签: python pandas

我想获取所有行和所有列中pandas DataFrame中最小值的索引和列名。

我已经尝试过.idxmin,但这似乎仅适用于列。理想情况下,该函数是不需要循环的单行代码。这似乎是一个非常普遍的问题,但是我还没有找到解决方案。

我的数据框:

      col0, col1, col2
index0 1     2     3 
index1 2     3     4
index2 5     6     7

我想获取整个矩阵中最小值的索引和列:

如此:

some_func(df) = (index0,col0)

2 个答案:

答案 0 :(得分:8)

尝试一下:

Executing (default): CREATE TABLE IF NOT EXISTS `user` (`id` INTEGER NOT NULL auto_increment , `name` VARCHAR(255) NOT NULL, `phone` VARCHAR(255) NOT NULL, `gender` VARCHAR(255) NOT NULL DEFAULT 'm', `birthday` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME
NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;
Executing (default): SHOW INDEX FROM `user`
Executing (default): CREATE TABLE IF NOT EXISTS `food` (`id` INTEGER NOT NULL auto_increment , `doInMyPlace` TINYINT(1) NOT NULL, `address` VARCHAR(255) NOT NULL, `mapAddress` VARCHAR(255) NOT NULL, `date` VARCHAR(255) NOT NULL, `time` VARCHAR(255) NOT NULL, `voucher` VARCHAR(255), `companyName` VARCHAR(255) NOT NULL,
`phoneNumber` VARCHAR(255) NOT NULL, `itemCount` NUMBER NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;

答案 1 :(得分:2)

Numpy和divmod

i, j = divmod(np.argmin(np.ravel(df)), df.shape[1])

(df.index[i], df.columns[j])

('index0', 'col0')