데이터 형식이 잘못된 큰 .txt 파일이 있습니다. 일부 행을 제거하고 나머지 데이터를 부동 숫자로 변환하고 싶습니다. 내가 'X'
또는 'XX'
로 행을 제거하고자, 나머지는 내가 떠 변환해야합니다, 4;00.1
같은 번호가 파일이 샘플과 같은 4.001
로 변환되어야한다 : 나는 DataFrame에게 읽어python pandas의 DataFrame에서 특정 행을 제거합니다.
0,1,10/09/2012,3:01,4;09.1,5,6,7,8,9,10,11
1,-0.581586,11/09/2012,-1:93,0;20.3,739705,,0.892921,5,,6,7
2,XX,10/09/2012,3:04,4;76.0,0.183095,-0.057214,-0.504856,NaN,0.183095,12
3,-0.256051,10/09/2012,9:65,1;54.9,483293,0.504967,0.074442,-1.716287,7,0.504967,0.504967
4,-0.728092,11/09/2012,0:78,1;53.4,232247,4.556,0.328062,1.382914,NaN,4.556,4
5,4,11/09/2012,NaN,NaN,6.0008,NaN,NaN,NaN,6.000800,6.000000,6.000800
6,X,11/09/2012,X,X,5,X,8,2,1,17.000000,33.000000
7,,11/09/2012,,,,,,6.000000,5.000000,2.000000,2.000000
8,4,11/09/2012,7:98,3;04.5,5,6,3,7.000000,3.000000,3.000000,2
9,6,11/09/2012,2:21,4;67.2,5,2,2,7,3,8.000000,4.000000
선택 행
from pandas import *
from csv import *
fileName = '~/data.txt'
colName = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l']
df = DataFrame(read_csv(fileName, names=colName))
print df[df['b'].isin(['X','XX',None,'NaN'])].to_string()
마지막 마지막 줄의 출력은 나만을 제공합니다
>>> print df[df['b'].isin(['X','XX',None,'NaN'])].to_string()
b c d e f g h i j k l
a
2 XX 10/09/2012 3:04 4;76.0 0.183095 -0.057214 -0.504856 NaN 0.183095 12 NaN
6 X 11/09/2012 X X 5.000000 X 8.000000 2 1.000000 17 33
하지 않습니다 7 행을 선택하면, 하나의 열 (원본 파일이 매우 큽니다)뿐만 아니라 모든 df를 살펴보고 싶습니다.
변환 할 때 아래에서 사용하지만 불필요한 행을 먼저 제거하여 모든 df에 적용해야합니다. 나는 안양에서 제거하려는 행을 선택한 후
convert1 = lambda x : x.replace('.', '')
convert2 = lambda x : float(x.replace(';', '.'))
newNumber = convert2(convert1(df['e'][0]))
, 나는 df.pop()
시도하지만 열 수 없습니다 행에 대한에서만 작동합니다. 나는 행에 이름을 짓려고하지만 운이 없다. 이 특정 .txt에서 열 [0,3,8,9]의 열에서 'c'를 날짜 형식으로 'd'를 시간 형식으로, 나머지를 float으로 새 df로 마무리해야합니다. 나는 그것을 잠시 동안 알아 내려고 노력하지만 어디로 옮길 지, 팬더에서 가능할 것인가 (아마도 있어야 할 것인가) 아니면 ndarray
또는 다른 것으로 바꿀 필요가 있는가? 귀하의 조언을 주셔서 감사합니다
것은, 내가 무엇을 알고 싶습니다 : 당신은 어떤 요소가 'X'또는 'XX'없는 행을 얻을 수 있도록 모든 열을 필터링하려면 은 같은 것을 할 이 질문에 잘못 투표가 내려 졌습니까? – tomasz74