python读取大文件

发布时间:2019-09-18 07:21:29编辑:auto阅读(1600)


    python读取文件对各列进行索引 可以用readlines, 也可以用readline, 如果是大文件一般就用readline

    d={}
    
    a_in = open("testfile.txt", "r")
    
    for line in a_in:
        columnssplit = line.rstrip().split("\t")
        d[columnssplit[0]]=columnssplit[1]
    
    a_in.close()
    
    ID_test = open("correlation.txt", "r")
    
    for line in ID_test:
        s = line.rstrip().split("\t")
        if s[1] in d:
            print s[0]+"\t"+d[s[1]]
    ID_test.close()
    
    ## Here is another example
    
    f = open("test.txt", "r")  
    while True:  
        line = f.readline()  
        if line:   #  或者用 if line != "":
            print line  
        else:  
            break  
    f.close()


    参考: http://blog.csdn.net/oldjwu/article/details/4329401


    python 还有一个pandas 主要用于大数据分析, 它与matplotlib以及 numpy 结合可以替代R语言进行统计学分析, 获取dataframe的 各行内容,可以用iterrows() 和 itertuples(), 其中 itertuples() 比 iterrows()速度更快。

    import pandas as pd
    
    df1 = pd.read_csv("test.txt", header = None, sep='\t')
    
    # 打印前三行
    print df1[:3]
    
    # 选取前三行的 前三列, 使用df.loc
    
    df2 = df1.loc[:3, [0, 1, 2]]
    
    print df2
    
    # 替换第三列的部分内容
    
    col3 = df2.apply(lambda r: r[2].replace("KH","TF"), axis=1)
    
    # 合并第一列和替换后的第三列内容
    
    df3 = pd.concat([df2[0], col3], axis = 1)
    
    print df3

    参考:

    http://pandas.pydata.org/pandas-docs/


    http://stackoverflow.com/questions/16476924/

    http://stackoverflow.com/questions/13411544/


关键字