Python .dat文件导入到熊猫中
我想使用pandas导入此公开可用的内容。简单为csv(我已将Simply.dat重命名为.csv):Python .dat文件导入到熊猫中,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我想使用pandas导入此公开可用的内容。简单为csv(我已将Simply.dat重命名为.csv): 然而,在某些情况下,国家名称由两个单词组成,而不仅仅是一个。在这些情况下,会将数据帧向右移动。这看起来像(名称hot springs在两列中):如何一次修复整个数据集?无需将.dat重命名为.csv。相反,您可以使用匹配两个或多个空格的正则表达式作为列分隔符 尝试使用sep参数: pd.read_csv('http://users.stat.ufl.edu/~winner/data/clint
然而,在某些情况下,国家名称由两个单词组成,而不仅仅是一个。在这些情况下,会将数据帧向右移动。这看起来像(名称hot springs在两列中):如何一次修复整个数据集?无需将.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
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
如果要将状态作为单独的列,可以使用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
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
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
无需将.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
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
如果要将状态作为单独的列,可以使用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
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
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
可以使用正则表达式作为分隔符。在您的特定情况下,所有分隔符都是多个空格,而名称中的空格只是单个空格
import pandas as pd
clinton = pd.read_csv("clinton1.csv", sep='\s{2,}', header=None, engine='python')
可以使用正则表达式作为分隔符。在您的特定情况下,所有分隔符都是多个空格,而名称中的空格只是单个空格
import pandas as pd
clinton = pd.read_csv("clinton1.csv", sep='\s{2,}', header=None, engine='python')