我正在嘗試洗掉“Column_A”包含“.2”的行。并且“Column_B”是“COMMIT”。
data = {'Column_A':['L.9922070.128.1.020','L.9922080.125.2.001','F.1622002.001.2.001','F.1622002.001.2.001','F.1622002.001.2.001'],
'Column_B':['COMMIT','COMMIT','Release','Release','Release']}
R003_data = pd.DataFrame(data)
R003_data.drop(R003_data[~((R003_data['Column_B'] == 'COMMIT') & (R003_data['Column_A'].str.contains(".2.", regex=False)))].index)
print(R003_data)
但是,輸出如下。
Column_A Column_B
0 L.9922070.128.1.020 COMMIT
1 L.9922080.125.2.001 COMMIT
2 F.1622002.001.2.001 Release
3 F.1622002.001.2.001 Release
4 F.1622002.001.2.001 Release
我想要的輸出如下。
Column_A Column_B
0 L.9922070.128.1.020 COMMIT
2 F.1622002.001.2.001 Release
3 F.1622002.001.2.001 Release
4 F.1622002.001.2.001 Release
請幫我找出錯誤。謝謝你。
uj5u.com熱心網友回復:
兩件事情:
drop不修改原始資料框。因此,您必須將輸出分配回原始 df 或包含inplace=True我更喜歡的引數。如果要洗掉行,則不要包含該
~符號,因為您要洗掉這些行。如果您包含它,其他行將被洗掉并且不保留。
有了這兩個,您在 print 陳述句之前的代碼中的第三行如下所示:
R003_data.drop(R003_data[(R003_data['Column_B'] == 'COMMIT')
& R003_data['Column_A'].str.contains('.2.',
regex=False)].index, inplace=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/516777.html
標籤:Python熊猫数据框
