我是編程和Python3 /大熊貓的新手。我想刪除所有列,結果「未知」的某一列
我已經寫了一個csv文件到dF,並且使用了熊貓和numpty。 dF包含一系列的列,A,B,C等,以及數千行數據(並非全部都是數字)。我想從數據框中刪除所有「未知」的實例。
我曾嘗試:
DF = DF [DF [ 'A'= '未知']!]
,但它給了我一個錯誤信息。
我是編程和Python3 /大熊貓的新手。我想刪除所有列,結果「未知」的某一列
我已經寫了一個csv文件到dF,並且使用了熊貓和numpty。 dF包含一系列的列,A,B,C等,以及數千行數據(並非全部都是數字)。我想從數據框中刪除所有「未知」的實例。
我曾嘗試:
DF = DF [DF [ 'A'= '未知']!]
,但它給了我一個錯誤信息。
您的意思是?
df = df[df['A'] != 'unknown']
或者你可以使用query()
:
df = df.query('A != "unknown"')
您可以通過boolean indexing
需要過濾數據:
df = pd.DataFrame({'A':['a','unknown','b'],
'B':pd.date_range('2017-01-01', periods=3),
'C':[7,8,9],
'D':[1,3,5]})
print (df)
A B C D
0 a 2017-01-01 7 1
1 unknown 2017-01-02 8 3
2 b 2017-01-03 9 5
您需要括在大括號由於運算符優先級的多個條件,並使用按位和(&
)和或(|
)運營商如果有多個條件:
df1 = df[(df['A'] != 'unknown') & (df['B'] > '2017-01-02')]
print (df1)
A B C D
2 b 2017-01-03 9 5
但是,如果以後需要處理數據:
df1['C'] = df1['C'] + 1
print (df1)
值正試圖以從數據幀切片的副本設定。 嘗試使用的.loc [row_indexer,col_indexer] =值,而不是
問題是,如果你修改df1
值以後你會發現,修改不會傳播回原始數據(df
)和熊貓做警示。
解決辦法是copy
:
df1 = df[(df['A'] != 'unknown') & (df['B'] > '2017-01-02')].copy()
print (df1)
A B C D
2 b 2017-01-03 9 5
df1['C'] = df1['C'] + 1
print (df1)
A B C D
2 b 2017-01-03 10 5
你能具體談談你的問題的錯誤? –