如何拆分数据两列并重命名

How to split the data two columns and rename it

你好,我有一些问题,想对我编写的代码提出一些建议。 text file I use

代码

import pandas as pd
import numpy as np
filename = '100m.txt'
#read text file into pandas DataFrame 
df = pd.read_csv(filename, sep="\t")
#drop the unwanted rows
df.drop(df.index[0:2], inplace=True)  

#display DataFrame
print(df)

我在删除列之前获得的输出:

#"Frequency / MHz"                                  S2,1 [SPara1] [Magnitude in dB]
#----------------------------------------------...                              NaN
0.13800000000000                                                  -0.86382723874573
0.14231250000000                                                  -0.87087313013279
0.14662500000000                                                  -0.87829259771590
...                                                                             ...
17.646750000000                                                    -7.4030582653105
17.651062500000                                                    -7.4207444253551
17.655375000000                                                    -7.4408195390888
17.659687500000                                                    -7.4589436977625
17.664000000000                                                    -7.4799578201591

[4067 rows x 1 columns]


在我删除该列之后,但不知何故,数据中出现了“#,并且所有数据都在一列中,而不是我预期的两列。

                                 #
0.13800000000000  -0.86382723874573
0.14231250000000  -0.87087313013279
0.14662500000000  -0.87829259771590
0.15093750000000  -0.88573009666901
0.15525000000000  -0.89247663245258
    
[4065 rows x 1 columns]

如何让数据拆分成两行并重命名列?提前谢谢你。

您应该在 DataFrame 中解析时处理这个问题。在尝试删除之前打印 DataFrame 时,请注意它是如何显示 [4067 行 x 1 列] 的?加载 CSV 时包含这三行会破坏它使用指定的 '\t' 分隔符正确拆分的能力。

示例代码:

df = pd.read_csv(
    filename,
    sep="\t",
    skiprows=3,
    names=['frequency', 'magnitude'],
)

您也可以如上例所示在自己的列名中进行解析,因为我们在解析数据时完全忽略了这些行。

导致: