Python 在任意多列中删除包含字符串值的行

Python 在任意多列中删除包含字符串值的行,python,string,pandas,dataframe,Python,String,Pandas,Dataframe,对你们大多数人来说,这个问题似乎很容易,但对像我这样的初学者来说,它有点难 我有这样一个数据帧: Voltage Current Kilo Watt KVA Power 423.83772 79.33 38.915012 58.08210746 asf 422.90244 33.73 23.3185 27.43352941 0.85 422.57336 92.29 50.75332 67.67109333 0.75 429.2

对你们大多数人来说,这个问题似乎很容易,但对像我这样的初学者来说,它有点难

我有这样一个数据帧:

Voltage    Current  Kilo Watt   KVA         Power
423.83772   79.33   38.915012   58.08210746 asf
422.90244   33.73   23.3185     27.43352941 0.85
422.57336   92.29   50.75332    67.67109333 0.75
429.29352   38.5    24.63797    28.64880233 0.86
423.61256   86.49   45.14188    63.58011268 0.71
423.61256   86.49   dfhfgj      63.58011268 0.71
422.91976   36.89   21.20996    24.66274419 0.86
427.18048   88.19   45.815193   64.52844085 0.71
427.12852   64.25   21.9954     47.81608696 pqr
422.46944   75.6    36.11695    55.56453846 0.65
426.66088   32.65   20.36856    24.24828571 0.84
406.88144   304.31  85.102684   212.75671   0.4
412.25064   142.62  92.578545   107.6494709 0.86
412.0428    75.5    36.51638    52.92228986 0.69
422.20964   79.3    39.08528    58.33623881 xyz
421.20508   93.71   ggg         67.97310132 0.76
425.82952   136.95  106.97365   534.86825   0.2
我想删除具有字符串值的相应行

我试过:

df[df!=0.].dropna(轴=0)

这会删除包含零和错误的行

如何在python中实现这一点

这是一条单行线

In [882]: df.apply(pd.to_numeric, errors='coerce').dropna()
Out[882]:
      Voltage  Current   Kilo Watt         KVA  Power
1   422.90244    33.73   23.318500   27.433529   0.85
2   422.57336    92.29   50.753320   67.671093   0.75
3   429.29352    38.50   24.637970   28.648802   0.86
4   423.61256    86.49   45.141880   63.580113   0.71
6   422.91976    36.89   21.209960   24.662744   0.86
7   427.18048    88.19   45.815193   64.528441   0.71
9   422.46944    75.60   36.116950   55.564538   0.65
10  426.66088    32.65   20.368560   24.248286   0.84
11  406.88144   304.31   85.102684  212.756710   0.40
12  412.25064   142.62   92.578545  107.649471   0.86
13  412.04280    75.50   36.516380   52.922290   0.69
16  425.82952   136.95  106.973650  534.868250   0.20

首先将行转换为列

df = pd.DataFrame(dict(A=[5,3,5,6], C=[1,"bar","fooXYZbar", "bat"]))
df._get_numeric_data()
结果:

A
0  5
1  3
2  5
3  6