想象一下,您有一个日志文件,它指示由空格分隔的一些信息,从第三个字段到最后一个字段,给定的信息是标识符列表。例如,表示结束每场比赛的F1赛车的id号(给出标题以解释示例):
Number_of_race Whatever_data From_here_list_of__car_ids
1 211 2 3 5 7 8 11 18
(意思是第2,3,5,7,8,11和18号汽车结束了第1场比赛的数据211)
我可以知道任何行(2)的最小列数,我也可以知道最大值(如果最后一辆车是#18,那么20是最大值)。
我可以在将文件读取为CSV时设置列名,因此最后18列将具有一些空值,然后以某种方式将18列组合为非空值的列表。但我想有一种更简单的方法可以与Pandas一起做这件事。
有什么建议吗?
答案 0 :(得分:1)
您可以将文件作为单个列读取,然后在以下后将其拆分:
import pandas as pd
df = pd.read_csv('race.csv',names=['FULL'],header=0)
df['Number_of_race'] =df.FULL.str.split(' ').str[0]
df['Whatever_data'] =df.FULL.str.split(' ').str[1]
df['From_here_list_of__car_ids'] =df.FULL.str.split(' ').str[2:]