我已经从Jupyter笔记本中的数据库中导入了数据。
import pyodbc
cnxn = pyodbc.connect('...')
cursor =cnxn.cursor()
cursor.execute("...")
tables = cursor.fetchall()
然后我将tables
转换为data frame
。
Db2Df = []
for row in tables:
Db2Df.append({...,...})
df = pd.DataFrame(Db2Df)
df.head()
因此,完成上述操作后,我正在浏览数据。
输入:
type(df)
type(df["Column_1"])
type(df["Column_1"][0])
输出:
pandas.core.frame.DataFrame
pandas.core.series.Series
str
我的问题是,为什么这样的数据类型(为什么这样做)? str
内pandas series
内的data frame
?在处理数据时,如果要操纵data frame
...
series
还是str
。
谢谢。
答案 0 :(得分:0)
将数据框视为系列字典:
d = dict(col1=['a', 'b', 'c'], col2=['d', 'e', 'f']
与pd.DataFrame非常相似。
实际上,您可以将此字典d
转换为数据帧:
import pandas as pd
df = pd.DataFrame(d)
按照描述它们的方式创建类型后,这是很正常的行为:
assert isinstance(df, pd.DataFrame)
assert isinstance(df.col1, pd.Series)
assert isinstance(df.col1[0], str)