我尝试使用pandas.read_csv尝试使用变量空间读取数据。其中一列是一个本身就有空格的名称。在这里给出一个想法,了解数据的头部是什么样的
ACM00078861 17.1170 -61.7830 10.0 COOLIDGE FIELD (UA) 1947 1993 13896
AEM00041217 24.4333 54.6500 16.0 ABU DHABI INTERNATIONAL AIRPOR 1983 2017 35306
AEXUAE05467 25.2500 55.3700 4.0 SHARJAH 1935 1942 2477
到目前为止我尝试过:
df=pd.read_csv(path, header=None, delim_whitespace=True)
它给了我这个错误,错误标记数据。 C错误:第2行预计10个字段,见11
然后我尝试使用
df=pd.read_csv(path, header=None, delim_whitespace=True, error_bad_lines=False)
但是,这只是跳过了不好的行,因此跳过了很多数据。即使在那之后,它也无法将包含名称的列(列索引4)保留在一列下,因为delim_whitespace = True会将名称中的空格作为单独的列读取。
我也尝试过使用
df = pd.read_csv(path, sep="\s{2,}", engine="python", header=None, error_bad_lines=False)
但这可以解读" ABU DHABI INTERNATIONAL AIRPOR 1983 2017"在一列之下,因为它们之间只有一个空格。
我考虑过手动编辑数据文件中的空格,但它有很多数据,而且我有几个实例,例如第2行中的空格。
有没有办法可以指定pandas来读取列作为数据文件提供的信息,如下所示
Variable Columns
ID 1-11
LATITUDE 13-20
LONGITUDE 22-30
ELEVATION 32-37
STATE 39-40
NAME 42-71
FSTYEAR 73-76
LSTYEAR 78-81
NOBS 83-88
或者有更好的方法来处理这种不规则间隔的数据吗?
答案 0 :(得分:4)
您可以从文件中读取的第一个数据,然后使用带有参数List_SelectionChanged(object sender, EventArgs e)
{
if(e.Rowindex>-1)
...
}
和colspecs
的{{3}}:
names