我想导入这个公开可用的 file使用 Pandas 。简单为 csv(我已将 .dat 重命名为 .csv):
clinton = pd.read_csv("C:/Users/Mateusz/Downloads/ML_DS-20180523T193457Z-001/ML_DS/clinton1.csv")
但在某些情况下,国家名称由两个单词组成,而不是一个单词。在这些情况下,将我的数据框向右移动。这看起来像(名称温泉分为两列):如何一次性修复整个数据集?
最佳答案
无需将 .dat 重命名为 .csv。相反,您可以使用匹配两个或多个空格的正则表达式作为列分隔符。
尝试使用 sep
参数:
pd.read_csv('http://users.stat.ufl.edu/~winner/data/clinton1.dat',
header=None, sep='\s\s+', engine='python')
输出:
0 1 2 3 4 5 6 7 8 9 10
0 Autauga, AL 30.92 31.7 57623 15768 15.2 10.74 51.41 60.4 2.36 457
1 Baldwin, AL 26.24 35.5 84935 16954 13.6 9.73 51.34 66.5 5.40 282
2 Barbour, AL 46.36 32.8 83656 15532 25.0 8.82 53.03 28.8 7.02 47
3 Blount, AL 32.92 34.5 61249 14820 15.0 9.67 51.15 62.4 2.36 185
4 Bullock, AL 67.67 31.7 75725 11120 33.0 7.08 50.76 17.6 2.91 141
如果您希望您的状态作为一个单独的列,您可以使用这个 sep='\s\s+|,' 这意味着在两个或更多空格或一个逗号上单独列。
pd.read_csv('http://users.stat.ufl.edu/~winner/data/clinton1.dat',
header=None, sep='\s\s+|,', engine='python')
输出:
0 1 2 3 4 5 6 7 8 9 10 11
0 Autauga AL 30.92 31.7 57623 15768.0 15.2 10.74 51.41 60.4 2.36 457.0
1 Baldwin AL 26.24 35.5 84935 16954.0 13.6 9.73 51.34 66.5 5.40 282.0
2 Barbour AL 46.36 32.8 83656 15532.0 25.0 8.82 53.03 28.8 7.02 47.0
3 Blount AL 32.92 34.5 61249 14820.0 15.0 9.67 51.15 62.4 2.36 185.0
4 Bullock AL 67.67 31.7 75725 11120.0 33.0 7.08 50.76 17.6 2.91 141.0
关于python - .dat 文件导入 Pandas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50628861/