python dataframe删除某一行_在python pandas中从DataFrame删除特定行

我有一个大的.txt文件,里面的数据格式不好。我想删除一些行并将其余数据转换为浮点数。我想删除带有'X'或'XX'的行,其余的我应该转换成float,像4;00.1这样的数字应该转换成4.001文件如下示例: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

我读到DataFrame并选择行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中删除的行之后,我尝试df.pop(),但它只适用于列,而不适用于行。我试着命名行,但运气不好。在这个特殊的.txt文件中,我应该用一个来自行[0,3,8,9]的新df结束,其中列'c'作为日期格式,'d'作为时间格式,其余的作为浮点格式。我试着想了好一阵子,但不知道该搬到哪里去,是熊猫(可能应该是)还是我需要换成ndarray或其他什么?谢谢你的建议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值