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