我的文本文件包含临时变化的数据。
#
1 2
2 4
3 4
#
6 1
3 2
1 7我希望在#处拆分列值,并通过追加拆分的文件生成新文件
预期output1
1 6
2 3
3 1预期output2
2 1
4 2
4 7发布于 2022-06-08 19:03:10
一个比乍看上去更复杂的问题。我必须仔细地查看示例输出,才能完全了解发生了什么。
模拟文本文件:
sim_txt = io.StringIO('''
#
1 2
2 4
3 4
#
6 1
3 2
1 7
''')
df = pd.read_csv(sim_txt, sep='\s+', header=None, names=[0,1])
df_out = df.assign(out=df[0].str.contains('#').cumsum()) \
.pivot(columns=['out']).apply(lambda x: x.shift(-len(x)//2) if x.name[1]==2 else x) \
.dropna().astype(int)
print(df_out)
0 1
out 1 2 1 2
1 1 6 2 1
2 2 3 4 2
3 3 1 4 7然后保存到各个文件:
for c in df_out.columns.get_level_values(0).unique():
df_out.loc[1:,c].to_csv(fr'd:\jchtempnew\SO\output{c+1}.txt', index=None, header=None, sep=' ')
output1
1 6
2 3
3 1
output2
2 1
4 2
4 7https://stackoverflow.com/questions/72549382
复制相似问题