亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從Python列表中找到最佳組合后如何從數據集中刪除一行

從Python列表中找到最佳組合后如何從數據集中刪除一行

楊__羊羊 2022-06-28 17:59:36
假設N = 7。我有 2 個矩陣 Y 和 Z 從我的數據集 M 中獲取。第一列是索引ID。通過從具有最大 det 值的 Y 矩陣(8 行)中組合 7 行來創建 Z 矩陣。我想獲取組合中省略的那一行,然后從我的數據集 M 中刪除該行。所以我想從我的原始數據集 M 中刪除第 8 行。import pandas as pdimport numpy as npimport itertools as itimport iodef brute_force(A):    return max(map(list,it.combinations(range(len(Y)),N)),               key=lambda s: np.linalg.det(A[s].T@A[s]))data =''' ID,M,N,O,P,Q,R5362,0.974,-0.404,-0.763,0.868,-0.5,0.16485,-0.659,0.531,0.623,0.402,0.772,0.506582,0.045,0.994,0.762,-0.036,0.117,-0.35599,0.777,0.537,0.391,0.456,0.329,0.10875,-0.44,0.522,0.856,-0.04,0.656,-0.935474,0.357,0.81,0.135,0.389,0.055,0.224594,-0.291,0.031,0.742,-0.332,0.815,0.983597,0.968,-0.357,0.591,0.892,0.375,0.88124,0.737,0.611,0.764,0.289,0.298,-0.705635,0.883,0.96,-0.987,0.29,0.997,0.1867894,-0.045,0.047,0.523,0.068,-0.9,0.3561268,0.561,0.736,-0.375,0.465,0.908,0.238,0.465,0.623,0.734,0.145,0.489,0.75988,0.029,0.166,0.098,0.285,0.18,0.829887,0.464,0.652,-0.896,0.07,0.772,-0.268994,-0.611,0.986,0.708,-0.195,0.938,0.166478,0.109,0.664,0.977,0.2,-0.466,0.676693,0.893,0.536,0.827,0,0.658,-0.31455,0.745,0.851,0.025,0.667,0.094,0.127874,0.036,-0.212,0.879,0.966,0.788,0.719417,0.316,0.553,0.872,-0.274,0.946,0.23844,0.517,-0.113,0.992,0.521,0.595,0.674101,0.699,0.095,0.269,0.628,-0.711,-0.14160,0.993,0.348,-0.44,0.807,0.013,0.3258741,-0.319,0.535,0.717,-0.89,0.334,0.2799635,0.363,0.812,0.77,0.715,0.34,0.3272563,0.649,-0.788,0.405,0.056,0.25,0.085463,0.491,0.414,0.084,0.173,0.397,-0.4991044,-0.669,0.288,0.424,-0.324,0.491,-0.581999,0.208,0.082,-0.425,0.916,0.582,0.45'''df = pd.read_csv(io.StringIO(data),index_col=0)M = df.iloc[:,:]N = int(input( '\nNo. of rows: '))Y = M.iloc[0 : N+1 ,:]print(Y.index)YB = brute_force(Y.to_numpy())Z = Y.iloc[YB]print(Z.index)輸出:No. of rows: 7Y.index :  Int64Index([5362, 485, 582, 99, 75, 474, 594, 597], dtype='int64', name='ID')Z.index :  Int64Index([5362, 485, 582, 99, 75, 594, 597], dtype='int64', name='ID')474在從 Y 矩陣中找到組合后,Z 矩陣中不存在索引。所以我想從我的原始數據集 M 中刪除完整的行。我想使用減少的數據集 M 進行進一步循環。
查看完整描述

1 回答

?
慕森王

TA貢獻1777條經驗 獲得超3個贊

使用一組差異來查找缺失的索引并將drop其從M


to_drop = (set(Y.index) - set(Z.index)).pop()


M = M.drop(to_drop, axis=0)


查看完整回答
反對 回復 2022-06-28
  • 1 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號