如何在python pandas中获取索引列名?这是一个示例数据帧:
Column 1
Index Title
Apples 1
Oranges 2
Puppies 3
Ducks 4
Run Code Online (Sandbox Code Playgroud)
我想要做的是获取/设置数据帧索引标题.这是我试过的:
import pandas as pd
data = {'Column 1' : [1., 2., 3., 4.],
'Index Title' : ["Apples", "Oranges", "Puppies", "Ducks"]}
df = pd.DataFrame(data)
df.index = df["Index Title"]
del df["Index Title"]
print df
Run Code Online (Sandbox Code Playgroud)
有人知道怎么做吗?
我正在尝试从Python创建一个MS Access数据库,并想知道是否可以直接从pandas数据帧创建一个表.我知道,我可以用熊猫dataframe.to_sql()功能的数据帧成功地写入到SQLite数据库或通过使用SQLAlchemy的发动机为其他数据库格式(但不是不幸访问),但我不能让所有的件件走到一起.这是我一直在测试的代码片段:
import pandas as pd
import sqlalchemy
import pypyodbc # Used to actually create the .mdb file
import pyodbc
# Connection function to use for sqlalchemy
def Connection():
MDB = 'C:\\database.mdb'
DRV = '{Microsoft Access Driver (*.mdb)}'
connection_string = 'Driver={Microsoft Access Driver (*.mdb)};DBQ=%s' % MDB
return pyodbc.connect('DRIVER={};DBQ={}'.format(DRV,MDB))
# Try to connect to the database
try:
Conn = Connection()
# If it fails because its not been created yet, create it and connect to it
except:
pypyodbc.win_create_mdb(MDB)
Conn …Run Code Online (Sandbox Code Playgroud) 所以我正在阅读NOAA的电台代码csv文件,如下所示:
"USAF","WBAN","STATION NAME","CTRY","FIPS","STATE","CALL","LAT","LON","ELEV(.1M)","BEGIN","END"
"006852","99999","SENT","SW","SZ","","","+46817","+010350","+14200","",""
"007005","99999","CWOS 07005","","","","","-99999","-999999","-99999","20120127","20120127"
Run Code Online (Sandbox Code Playgroud)
前两列包含气象站的代码,有时它们有前导零.当pandas在没有指定dtype的情况下导入它们时,它们会变成整数.这并不是什么大不了的事,因为我可以遍历数据框索引并用类似的东西替换它们,"%06d" % i因为它们总是六位数,但是你知道......这就是懒人的方式.
使用以下代码获取csv:
file = urllib.urlopen(r"ftp://ftp.ncdc.noaa.gov/pub/data/inventories/ISH-HISTORY.CSV")
output = open('Station Codes.csv','wb')
output.write(file.read())
output.close()
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但当我去尝试阅读它使用这个:
import pandas as pd
df = pd.io.parsers.read_csv("Station Codes.csv",dtype={'USAF': np.str, 'WBAN': np.str})
Run Code Online (Sandbox Code Playgroud)
要么
import pandas as pd
df = pd.io.parsers.read_csv("Station Codes.csv",dtype={'USAF': str, 'WBAN': str})
Run Code Online (Sandbox Code Playgroud)
我收到一条令人讨厌的错误消息:
File "C:\Python27\lib\site-packages\pandas-0.11.0-py2.7-win32.egg\pandas\io\parsers.py", line 401, in parser
_f
return _read(filepath_or_buffer, kwds)
File "C:\Python27\lib\site-packages\pandas-0.11.0-py2.7-win32.egg\pandas\io\parsers.py", line 216, in _read
return parser.read()
File "C:\Python27\lib\site-packages\pandas-0.11.0-py2.7-win32.egg\pandas\io\parsers.py", line 633, in read
ret = self._engine.read(nrows)
File "C:\Python27\lib\site-packages\pandas-0.11.0-py2.7-win32.egg\pandas\io\parsers.py", line 957, in read
data …Run Code Online (Sandbox Code Playgroud) python ×3
pandas ×2
columnname ×1
csv ×1
dataframe ×1
ms-access ×1
pyodbc ×1
pypyodbc ×1
sqlalchemy ×1
string ×1