我想读取ArcGIS形状文件的dbf
文件,并将其转储到pandas
数据帧中。我目前正在使用dbf包。
显然,我已经能够将dbf
文件作为一个表加载,但还不能理解如何解析它并将其转换为一个数据帧。怎么做?
这就是我所处的困境:
import dbf
thisTable = dbf.Table('C:\\Users\\myfolder\\project\\myfile.dbf')
thisTable.open(mode='read-only')
Python将此语句作为输出返回,坦率地说,我不知道该如何处理:
dbf。第二版。表('C:\\Users\\myfolder\\project\\myfile.dbf',status='read-only')
编辑
我的原始dbf
示例:
FID Shape E N
0 Point 90089.518711 -201738.245555
1 Point 93961.324059 -200676.766517
2 Point 97836.321204 -199614.270439
... ... ... ...
你可能想看看geopandas。它将允许您执行最重要的GIS操作
http://geopandas.org/data_structures.html
正如mmann1123所说,您可以使用geopandas来读取您的dbf文件。Geopandas读取它,即使它可能有也可能没有地理空间数据。
假设你的数据只是表格数据(没有地理坐标),并且你希望阅读它并转换成熊猫图书馆可以阅读的格式,我建议使用geopandas。
这里有一个例子:
import geopandas as gpd
My_file_path_name = r'C:\Users\...file_dbf.dbf'
Table = gpd.read_file(Filename)
import pandas as pd
Pandas_Table = pd.DataFrame(Table)
Keys = list(Table.keys())
Keys.remove('ID_1','ID_2') # removing ID attributes from the Table keys list
Keys.remove('Date') # eventually you have date attribute which you wanna preserve.
DS = pd.melt(Pandas_Table,
id_vars =['ID_1','ID_2'], # accepts multiple filter/ID values
var_name='class_fito', # Name of the variable which will aggregate all columns from the Table into the Dataframe
value_name ='biomass (mg.L-1)' , # name of the variable in Dataframe
value_vars= Keys # parameter that defines which attributes from the Table are a summary of the DataFrame)
# checking your DataFrame:
type(DS) # should appear something like: pandas.core.frame.DataFrame
您应该看看simpledbf:
In [2]: import pandas as pd
In [3]: from simpledbf import Dbf5
In [4]: dbf = Dbf5('test.dbf')
In [5]: df = dbf.to_dataframe()
这对我来说是一个小样本。dbf文件。希望有帮助。
我有一个这样的字典列表: 我想把它变成一个熊猫,如下所示: 注意:列的顺序并不重要。 如何将字典列表转换为如上所示的数据帧?
我对熊猫有些陌生。我有一个熊猫数据框,是一行23列。 我想把它转换成一个系列?我想知道做这件事最像蟒蛇的方式是什么? 我试过pd。系列(我的结果),但它抱怨。它还没有聪明到意识到它仍然是数学术语中的“向量”。 谢谢!
问题内容: 我对熊猫有些陌生。我有一个熊猫数据框,它是1行乘23列。 我想将其转换为系列吗?我想知道最pythonic的方法是什么? 我试过了,但是抱怨。它不够聪明,无法意识到它仍然是数学上的“向量”。 谢谢! 问题答案: 它不够聪明,无法意识到它仍然是数学上的“向量”。 可以说它足够聪明,可以识别尺寸差异。:-) 我认为您可以做的最简单的事情是使用位置选择该行,这将为您提供一个Series,其列
问题内容: 我有以下熊猫数据框: 我想将日期时间索引转换为数据框的列。我尝试过,但结果没有改变。任何想法? 问题答案: 需要分配输出或参数:
我在Pandas中读取了一个SQL查询,虽然值是字符串、日期和整数,但它们是作为dtype“object”输入的。我能够将日期“对象”转换为datetime数据类型,但在尝试转换字符串和整数时出错。 以下是一个例子: 将转换为日期时间有效: 但我在尝试将转换为整数时出错: 注意:我得到一个类似的错误,当我尝试 当试图转换为字符串时,似乎什么也没有发生。
我使用熊猫数据框来清理和处理数据。但是,我需要将其转换为numpy ndarray,以便使用利用矩阵乘法。我将数据框转换为具有以下内容的列表列表: 这将返回以下结构: 然后我将其转换为如下所示的numpy数组: 然而,以下打印: 给出这个结果: 但是,我需要它们都是numpy数组。如果它不是来自熊猫数据帧,我只是转换一个硬编码列表,那么它们都是Ndarray。当列表是从数据帧生成的时,如何获取该列