我有两个代码,下面将详细说明。
代码1:读取一个.csv文件,该文件包含时间戳记作为一列,而每个时间戳记的对应值作为另一列。
代码2:具有两个列的数据库读取数据库并从数据库中获取数据-时间戳作为一列,每个时间戳的对应值作为另一列。
对于代码1,当我尝试访问/打印与时间戳相对应的值时,它将打印单个numpy.float64值。这就是我想要的输出方式。
但是,对于代码2,当我尝试打印与时间戳相对应的值时,它将打印具有一个对象类型值的Series。
为什么从技术上讲都是数据帧,但从技术上讲,为什么会有差异?什么会导致输出差异?我该如何解决这个问题?
尝试了以下内容:
读取数据库,将其转换为.csv格式,再次读取.csv文件并尝试访问。仍返回系列。
from_db = MySQLdb.connect("xx.xx.xx.xx", "abcde", "12345", "TABLE_DB")
sql = "SELECT * FROM `SOME_TABLE` WHERE `THIS IS` = '123456'"
dmd_data = pd.read_sql(sql, con=from_db)
dmd_data = dmd_data.NAME
start_tstamp = '2016-10-08 00:00:00'
start = datetime.datetime.strptime(start_tstamp,f)
fact1 = (start-datetime.timedelta(days=1)).strftime(f)
预期输出为:
In [53]: dmd_data[fact1]
Out[53]: 4454.82406196
In [67]: type(dmd_data[fact1])
Out[67]: numpy.float64
我得到的输出是:
In [53]: dmd_data[fact1]
Out[53]:
TIMESTAMP
2016-10-07 4454.82406196
Name: DEMAND, dtype: object
In [60]: type(data[fact1])
Out[60]: pandas.core.series.Series
答案 0 :(得分:0)
首先将其转换为数据框:
df = series_data.to_frame()
// series_data is your data existing in 'pandas.core.series.Series' object form
现在转置结果
df = df.T
现在访问相应键的值。 如果问题仍然存在,请检查读取数据的数据类型和密钥以及您提供的数据!