识别 GitHub 数据集中的多列问题

Issue with recognizing multiple columns in GitHub data set

我正在尝试读取从 GitHub 获得的数据集,但我遇到了列问题。数据集中有不需要的信息,所以我删掉了。当我用我需要的信息创建一个新的 DataFrame 时,系统并没有识别出所有的列。相反,它将所有内容都视为一列。有谁知道如何解决这个问题,以便我可以制作 DataFrame 输出列 'r'、'G(r)'、'd_r'、'd_Gr'?下面是我的代码和输出。

import pandas as pd

url = 'https://github.com/jagar2/Summer_2020_MAT-395-495_Scientific-Data-Analysis-and-Computing/blob/master/homeworks/HW1/ALDalumina.gr?raw=true'
df = pd.read_table(url, skiprows=0)

# from here, the desired data is within rows [123:]
print(df.loc[123:] # this shows desired data

# make new DataFrame
df_new = df[123:]


# output

        History written:      Thu Apr 12 20:03:37 2018
123                         #L r    G(r)    d_r    d_Gr
124     1.000000e-002    8.021935e-002   -7.539822e-...
125     2.000000e-002    1.585036e-001   -1.507964e-...
126     3.000000e-002    2.329669e-001   -2.261947e-...
127     4.000000e-002    3.018208e-001   -3.015929e-...
...                                                 ...
2119    1.996000e+001   -4.029393e-002   -1.504949e+...
2120    1.997000e+001   -4.024680e-002   -1.505703e+...
2121    1.998000e+001   -3.973462e-002   -1.506456e+...
2122    1.999000e+001   -3.877427e-002   -1.507210e+...
2123    2.000000e+001   -3.739258e-002   -1.507964e+...

[2001 rows x 1 columns]

如何让 python 识别这些列?感谢任何帮助。

数据被解释为包含一个稍长的列 'History written: Thu Apr 12 20:03:37 2018'

基本上,您需要将单列拆分为多列。您可以使用下面的代码来获得您所描述的结果。创建df_new后,您可以尝试:

df_final = df_new[1:].assign(r = df_new['History written:      Thu Apr 12 20:03:37 2018'].str.split('\s{3,}').map(lambda x: x[0]), 
              G_r = df_new['History written:      Thu Apr 12 20:03:37 2018'].str.split('\s{3,}').map(lambda x: x[1]), 
              d_r = df_new['History written:      Thu Apr 12 20:03:37 2018'].str.split('\s{3,}').map(lambda x: x[2]), 
              d_Gr = df_new['History written:      Thu Apr 12 20:03:37 2018'].str.split('\s{3,}').map(lambda x: x[3])
             )[['r','G_r','d_r','d_Gr']]

这将为您提供一个包含所需 4 列的新数据框 df_final。您可以使用 df_final.rename(columns = your_column_name_dict)

重命名您认为合适的列
df_final = df_final.rename(columns = {'G_r':'G(r)'})