当列中的值为字符串时删除列中的行

2024-04-29 10:08:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

           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列中的数据类型(字符串)并将其删除

关键是,我得到的基本数据包含一些错误,我不能用字符串数据对列进行求和。现在是删除行的第一个解决方案。以后我会设法解决它否则

谢谢你的帮助

达米安


Tags: 数据字符串materialsdhtakweuronetto
1条回答
网友
1楼 · 发布于 2024-04-29 10:08:33

可以将掩码与^{}一起使用,^{}^{}一起使用:

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

如果熊猫的旧版本使用^{}

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

相关问题 更多 >