我只想更改数据文件的标题行,然后再将其保存到格式化后的新文件中。我的数据充满了具有指数的浮动数据。我正在使用Spyder 3.2.6,其中嵌入了python 3.6.4 64位。
这是我的数据文件link。由于R,L,G,C字段中的每个字段都有3001行,因此在原始数据文件中总共有480062行被截断了。
我的数据格式代码如下:
import pandas as pd
#create DataFrame from csv with columns f and v
df = pd.read_csv('data.txt', sep="\s+", names=['freq','v'])
#boolean mask for identify columns of new df
m = df['v'].str.endswith(')')
#new column by replace NaNs by forward filling
df['g'] = df['v'].where(m).ffill()
#get original ordering for new columns
cols = df['g'].unique()
#remove rows with same values in v and g columns
df = df[df['v'] != df['g']]
#reshape by pivoting with change ordering of columns by reindex
df = df.pivot('freq', 'g', 'v').rename_axis(None, axis=1).reindex(columns=cols).reset_index()
df.to_csv('target.txt', index=False, sep='\t')
现在目标文件另存为“ target.txt”,其标题行如下所示:
freq R(1,1) R(1,2) R(2,1) R(2,2) L(1,1) L(1,2) L(2,1) L(2,2) G(1,1) G(1,2) G(2,1) G(2,2) C(2,2) C(1,1) C(1,2) C(2,1)
在这里您可以看到每个列都由一个“标签”分隔。标题行之所以这样,是因为它从输入文件中获取字符串或数据,而输入文件中的数据字符串就是这样。
现在,我希望我的标题行与下面的内容有所不同,以进行进一步处理。您能帮我在将数据保存到新文件“ target.txt”之前,如何将其更改为标题行以下?
Freq R1:1 R1:2 R2:1 R2:2 L1:1 L1:2 L2:1 L2:2 G1:1 G1:2 G2:1 G2:2 C1:1 C1:2 C2:1 C2:2
答案 0 :(得分:0)
在这种情况下,您可以像这样重命名标题
df.columns = [x.replace('(','').replace(')','').replace(',',':') for x in df.columns]
将数据框保存到csv之前。