Python 2.7 -Pandas.Read_table-如何从Flat File导入四倍体分离的字段



我是一个不错的SAS程序员,但我在Python中是新的。现在,我给了我的Twitter提要,每个提要都保存到非常大的平面文件中,并带有第1行的标头,并且数据结构如下:

created_at |||| id ||||文本|||| in_reply_to_to_user_id ||||名称|||| screet_name |||| ||| colducters_closters_count_count_count |||||| time_zone ||| quote_count ||回复_COUNT |||| retweet_count ||||| iffe_count星期二11月14日12:33:00  0000 2017 |||| 930413253766791168 |||| icymi:足球俱乐部加入精酿啤酒革命!良好的阅读|||||||| Bab |||| Babbrewers ||||每月在1000贸易,珠宝区的自制聚会。本月的第一个星期二。即使您从未酿造过。|||| 95 |||||||| 0 ||| 0 |||| 0 ||| 0Nov Nov 14 12:34:00  0000 2017 |||| 930413253766821456 ||||我愿意||||||||| misty |||||| mistygrl ||||您可以做!|||| 45 |||||||| 0 ||| 0 |||| 0 ||| 0

我想这就是这样,因为在Twitter feed中可以找到任何类型的字符,但是四型管不够。

我知道有些人为此使用了JSON,但是我已经有了这些文件:其中很多。我可以使用SAS轻松地转换这些文件,但是我更喜欢这次。

现在,我似乎找不到使Python(2.7)的方法理解,四个管道是实际的分离器。以下代码的输出:

import pandas as pd
with open('C:/Users/myname.mysurname/Desktop/my_twitter_flow_1.txt') as theInFile:
    inTbl = pd.read_table(theInFile, engine='python', sep='||||', header=1)
    print inTbl.head()

似乎暗示python并没有将不同的字段视为不同的字段,但简单地将前5行带入了线馈线,而忽略了||||分隔器。

基本上,我得到的输出像我在上面写的那样向您展示数据结构。

有任何提示?

仅使用问题中的数据:

>>> df = pd.read_csv('rio.txt', sep='|{4}', skip_blank_lines=True, engine='python')
>>> df
                       CREATED_AT                  ID  
0  Tue Nov 14 12:33:00 +0000 2017  930413253766791168   
1  Tue Nov 14 12:34:00 +0000 2017  930413253766821456   
                                                TEXT IN_REPLY_TO_USER_ID  
0  ICYMI: Football clubs join the craft beer revo...                       
1                                      I'm up for it                       
    NAME SCREEN_NAME                                        DESCRIPTION  
0    BAB  BABBrewers  Monthly homebrew meet-up at 1000 Trades, Jewel...   
1  Misty    MistyGrl                                     You CAN DO it!   
   FOLLOWERS_COUNT TIME_ZONE  QUOTE_COUNT  REPLY_COUNT  RETWEET_COUNT  
0               95                      0            0              0   
1               45                      0            0              0   
   FAVORITE_COUNT  
0               0  
1               0  

注意sep参数。当它长一个以上的字符,而不等于" s "时,它被解释为正则表达式。但是" |"角色在正则表达式中具有特殊的含义,因此必须使用" "字符逃脱它。我可以简单地写sep='||||';但是,我使用了缩写。

最新更新