2016-08-03 50 views
1

我有以下數據框:刪除行中列時在列的值是一個字符串

  MATERIAL KW_WERT NETTO_EURO     TA 
0   B60ETS 0.15  18.9    SDH 
1   B60ETS 0.145  18.27    SDH 
2   B60ETS 0.145  18.27    SDH 
3   B60ETS 0.15  18.9    SDH 
4   B60ETS 0.15  18.9    SDH 
5   B60ETS 0.145  18.27    SDH 
6   B60ETS 0.15  18.9    SDH 
7   B60ETS 3.011  252.92   DSLAM/MSAN 
8   B60ETS 3.412  429.91   DSLAM/MSAN 
9   B60ETS  0.9  113.4   DSLAM/MSAN 
10   B60ETS 0.281  23.6   DSLAM/MSAN 
11   B60ETS 0.078  9.83   DSLAM/MSAN 
12   B60ETS 0.107  13.48   DSLAM/MSAN 
13   B60ETS 0.192   KW   DSLAM/MSAN 
14   B60ETS 0.007   KW    PSTN 
15   G230ETS  0.3  46.05   SONSTIGES 

我怎樣才能篩選列NETTO_EURO的數據類型(串)的刪除呢?

重點是,我得到的基本數據包括一些錯誤,我不能總結列中的字符串數據。現在是第一個刪除行的解決方案。稍後我會嘗試修復它,否則。

謝謝你的幫助。

達米安

回答

1

您可以to_numericnotnull使用面膜與boolean indexing

print (pd.to_numeric(df.NETTO_EURO, errors='coerce').notnull()) 
0  True 
1  True 
2  True 
3  True 
4  True 
5  True 
6  True 
7  True 
8  True 
9  True 
10  True 
11  True 
12  True 
13 False 
14 False 
15  True 
Name: NETTO_EURO, dtype: bool 

print (df[pd.to_numeric(df.NETTO_EURO, errors='coerce').notnull()]) 
    MATERIAL KW_WERT NETTO_EURO   TA 
0 B60ETS 0.150  18.9   SDH 
1 B60ETS 0.145  18.27   SDH 
2 B60ETS 0.145  18.27   SDH 
3 B60ETS 0.150  18.9   SDH 
4 B60ETS 0.150  18.9   SDH 
5 B60ETS 0.145  18.27   SDH 
6 B60ETS 0.150  18.9   SDH 
7 B60ETS 3.011  252.92 DSLAM/MSAN 
8 B60ETS 3.412  429.91 DSLAM/MSAN 
9 B60ETS 0.900  113.4 DSLAM/MSAN 
10 B60ETS 0.281  23.6 DSLAM/MSAN 
11 B60ETS 0.078  9.83 DSLAM/MSAN 
12 B60ETS 0.107  13.48 DSLAM/MSAN 
15 G230ETS 0.300  46.05 SONSTIGES 

如果有舊版本的熊貓使用convert_objects的:

print (df[df["NETTO_EURO"].convert_objects(convert_numeric=True).notnull()]) 
    MATERIAL KW_WERT NETTO_EURO   TA 
0 B60ETS 0.150  18.9   SDH 
1 B60ETS 0.145  18.27   SDH 
2 B60ETS 0.145  18.27   SDH 
3 B60ETS 0.150  18.9   SDH 
4 B60ETS 0.150  18.9   SDH 
5 B60ETS 0.145  18.27   SDH 
6 B60ETS 0.150  18.9   SDH 
7 B60ETS 3.011  252.92 DSLAM/MSAN 
8 B60ETS 3.412  429.91 DSLAM/MSAN 
9 B60ETS 0.900  113.4 DSLAM/MSAN 
10 B60ETS 0.281  23.6 DSLAM/MSAN 
11 B60ETS 0.078  9.83 DSLAM/MSAN 
12 B60ETS 0.107  13.48 DSLAM/MSAN 
15 G230ETS 0.300  46.05 SONSTIGES 
+0

謝謝您的回答..但我得到和「無效字符串」在這一點上錯誤='脅迫'因爲= – Damian

+0

舊版本有問題的熊貓。你的版本是什麼? 'print(pd.show_versions())' – jezrael

+0

我得到了熊貓0.16.2 – Damian

相關問題