2017-02-16 1 views
0

대부분이 질문은 쉬운 것처럼 보이지만 초보자에게는 어렵습니다.여러 열 중 하나에서 문자열 값을 포함하는 행을 놓으십시오.

은 내가 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.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 

내가 문자열 값이 각각의 행을 삭제하고 싶습니다.

는 I 시도 :

DF [DF = 0!.] dropna (축 = 0)

이 0과 오류가있는 행을 삭제합니다..

어떻게 이것을 파이썬으로 구현할 수 있습니까?

답변

1

다음은 한 줄짜리입니다.

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 
+0

아, 훨씬 더. – jezrael

+0

나는 이것을 시도했다. 나는 빈 데이터 프레임을 얻고있다. 왜? – Dheeraj

0

먼저 행을 열로 변환합니다.

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 
관련 문제