我有一个文本文件,其中包含每 3 行重复一次的数据。可以说是hash,directory,sub directory。数据如下所示:a3s2d1f32a1sdf321asdfDir_321321Dir2_asdfs21a3s21d3f21as32d1fDir_65465Dir2_werqasd21231asdfa3s21dDir_76541Dir2_wbzxc....我创建了一个 python 脚本来获取数据,每 3 行创建一列:import pandas as pddf1 = pd.read_csv('RogTest/RogTest.txt', delimiter = "\t", header=None)df2 = df1[df1.index % 3 == 0]df2 = df2.reset_index(drop=True) df3 = df1[df1.index % 3 == 1]df3 = df3.reset_index(drop=True)df4 = df1[df1.index % 3 == 2]df4 = df4.reset_index(drop=True)df5 = pd.concat([df2, df3], axis=1)df6 = pd.concat([df5, df4], axis=1)#Rename columnsdf6.columns = ['Hash', 'Dir_1', 'Dir_2']#Write to csvdf6.to_csv('RogTest/RogTest.csv', index=False, header=True) 这工作正常,但我很好奇是否有更有效的方法来做到这一点,也就是更少的代码?
1 回答

Smart猫小萌
TA贡献1911条经验 获得超7个赞
您可以使用:
df_final = pd.DataFrame(np.reshape(df.values,(3, df.shape[0]/3)))
df_final.columns = ['Hash', 'Dir_1', 'Dir_2']
输出:
Hash Dir_1 Dir_2
0 a3s2d1f32a1sdf321asdf Dir_321321 Dir2_asdf
1 s21a3s21d3f21as32d1f Dir_65465 Dir2_werq
2 asd21231asdfa3s21d Dir_76541 Dir2_wbzxc
添加回答
举报
0/150
提交
取消