pandas切片和vstack交织数据帧

2024-06-16 10:05:34 发布

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

下面的代码读取一个csv文件,其中的数据格式为[a B C D E E F G H D E F G H D E F G H…] 并将其转换为按相同顺序堆叠的[A B C D E E F G H]

这是数据源

http://web.mta.info/developers/data/nyct/turnstile/turnstile_110507.txt

下面是一个来自单行的示例结果

^{pr2}$

data wrangling

有没有一种方法可以用pandas和数据帧切片来实现这一点?在


Tags: 文件csv代码infotxtwebhttpdata
1条回答
网友
1楼 · 发布于 2024-06-16 10:05:34

不知何故无法下载完整的数据集。它只供MTA内部使用吗?在

第一个、第二个和第三个列在一个文件中总是相同的吗?这是以下解决方案的假设:

如果每行包含具有相同第1列到第3列的条目,则需要进行小的修改:基本上是使用以下方法为每一行生成一个数据帧,然后将它们组合成一个。在

如果一行包含多个ABCDEFGH,则需要一些更好的方法。在

In [68]:

df=input_line.split(',')
df_1stpt=df[:8]  #the leading row
df_2ndpt=np.array(df[8:]).reshape((-1,5)) #get the rest rows into the right shape
df_1stpt=pd.DataFrame(df_1stpt).T #create a dataframe containing the leading row
df_2ndpt=pd.DataFrame(df_2ndpt,columns=range(3,8)) #create a DF of the rest rows, with the right col idx
df_rst=df_1stpt.append(df_2ndpt, ignore_index=True) #put them together
df_rst.ix[:,[0,1,2]]=df_rst.ix[0,[0,1,2]].values #fill the nan's
In [69]:

print df_rst
      0     1         2         3         4        5          6          7
0  A002  R051  02-00-00  05-21-11  00:00:00  REGULAR  003169391  001097585
1  A002  R051  02-00-00  05-21-11  04:00:00  REGULAR  003169415  001097588
2  A002  R051  02-00-00  05-21-11  08:00:00  REGULAR  003169431  001097607
3  A002  R051  02-00-00  05-21-11  12:00:00  REGULAR  003169506  001097686
4  A002  R051  02-00-00  05-21-11  16:00:00  REGULAR  003169693  001097734
5  A002  R051  02-00-00  05-21-11  20:00:00  REGULAR  003169998  001097769
6  A002  R051  02-00-00  05-22-11  00:00:00  REGULAR  003170119  001097792
7  A002  R051  02-00-00  05-22-11  04:00:00  REGULAR  003170146  001097801

[8 rows x 8 columns]

相关问题 更多 >