大数据块,尝试替换一列中的分隔符字符,但不是所有分隔符字符

2024-03-29 00:51:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Pandas分析一个数据集(200mb,~3mil行),但是这个数据集包含一个由随机用户填充的列,其中允许所有字符。这就产生了一个问题,定界符(\t)也经常出现在最后一列中。在GVIM中,我尝试搜索并用“:”替换所有的'\t',但这也替换了实际的分隔符(GVIM中没有显示)。有没有人知道如何具体地替换大型数据集中某列中的字符?在

例如,我的文件使用制表符(\t)作为其列的分隔符。但是,有一行包含以下信息:

137179101   genericname 431 499 19568   0   26 Apr 2010 01:45:05 GMT    Oakland,\   CA

这把我的Pandas笔记本搞砸了,因为它需要8个字段,但是由于\和CA之间的制表符,它得到了9个字段。第8列是唯一一个可以填写自己的选项卡的地方。那么,我如何只在第八列中更改“\t”呢?在

提前谢谢!在

请注意,我对Python脚本没有任何经验,我认为可以解决它,但是比学习Python更快的方法会更好。在


Tags: 文件数据用户信息pandas字符apr制表符
1条回答
网友
1楼 · 发布于 2024-03-29 00:51:56

我认为您可以先通过^{}sep='₩'创建数据帧,然后使用带有参数n=7的{a2},因为您只需要按第一个7分隔符进行拆分:

import pandas as pd
import io

temp=u"""137179101   genericname 431 499 19568   0   26 Apr 2010 01:45:05 GMT    Oakland,\   CA
137179101   genericname 431 499 19568   0   26 Apr 2010 01:45:05 GMT    Oakland,\   CA
137179101   genericname 431 499 19568   0   26 Apr 2010 01:45:05 GMT    Oakland,\   CA"""
#after testing replace io.StringIO(temp) to Location
df  = pd.read_csv(io.StringIO(temp), sep="₩", header=None, names=['data'], encoding='Latin-1')

with pd.option_context('display.max_colwidth', -1):
    print df 
                                                                                     data
0  137179101   genericname 431 499 19568   0   26 Apr 2010 01:45:05 GMT    Oakland,\   CA
1  137179101   genericname 431 499 19568   0   26 Apr 2010 01:45:05 GMT    Oakland,\   CA
2  137179101   genericname 431 499 19568   0   26 Apr 2010 01:45:05 GMT    Oakland,\   CA   

print df.data.str.split('\t',n=7).apply(pd.Series)
           0            1    2    3      4  5                         6  \
0  137179101  genericname  431  499  19568  0  26 Apr 2010 01:45:05 GMT   
1  137179101  genericname  431  499  19568  0  26 Apr 2010 01:45:05 GMT   
2  137179101  genericname  431  499  19568  0  26 Apr 2010 01:45:05 GMT   
3  137179101  genericname  431  499  19568  0  26 Apr 2010 01:45:05 GMT   

               7  
0    Oakland,\CA  
1    Oakland,\CA  
2  Oakland,\\tCA  
3        Oakland  

相关问题 更多 >