【发布时间】:2019-03-22 02:27:02
【问题描述】:
我正在尝试将 .dat 文件导入到 pandas 数据框中进行分析。
.dat 文件中的一行包含 2 个观测值(年份、人口和犯罪),如下所示:
1960 179323175 3384200 1961 182992000 3488000
Marcin's solution 非常有帮助,但是,我似乎在一行上有多个观察结果(因为 .dat 文件是结构化的)。是否有与 SAS 中的 @@ 选项等效的选项,它允许 pandas 指定列数(或更好的解决方案)?谢谢。
#importing .dat files into pandas
with open('Data_Exercises/CHAPTER4/DATA for Exercises 4.1 and 4.4.dat','r') as f:
#next(f) # this is what you would write to skip the first row.skip first row
df = pd.DataFrame((l.rstrip().split() for l in f))
print(df)
【问题讨论】:
-
您可能想解释一下“SAS 中的@@ 选项”做了哪些Python 做不到的事情;我怀疑很多 Python 专家不熟悉 SAS 语法。
-
谢谢你,mustaccio。 @@ 选项将允许一行数据包含多个条目。它使用输入(即列名)来了解包含多少观察值(例如,如果有 3 个输入和 9 条分隔数据,则有 3 个观察值)。
-
可能只有我一个人,但这种解释并没有多大帮助。无论如何,您应该编辑您的问题并将其添加到那里,而不是在 cmets 中。
-
您似乎正在寻找一种方法来生成 0-2 和 3-5 列的并集。