Python 如何从html系列(字符串)导入数据帧?
我有一段html代码,其中包含一个系列。我已将字符串格式更改为使用熊猫系列所需的格式Python 如何从html系列(字符串)导入数据帧?,python,string,pandas,dataframe,Python,String,Pandas,Dataframe,我有一段html代码,其中包含一个系列。我已将字符串格式更改为使用熊猫系列所需的格式 s = {"2014-12-31":["price":385000,"count":3],"2013-12-31":["price":380000,"count":2],"2010-12-31":["price":400000,"count":2],"2019-10-31":["price":null,"count":null]} 如何将其放入数据帧中 我试过了 df = pd.Series(s) 我甚至尝
s = {"2014-12-31":["price":385000,"count":3],"2013-12-31":["price":380000,"count":2],"2010-12-31":["price":400000,"count":2],"2019-10-31":["price":null,"count":null]}
如何将其放入数据帧中
我试过了
df = pd.Series(s)
我甚至尝试删除“价格”和“计数”:但没有成功。当然,必须有一种简单的方法从字符串中导入一个系列,就好像它刚被定义为一个系列一样。我错过了什么?从这个
s = '{"2014-12-31":["price":385000,"count":3],"2013-12-31":["price":380000,"count":2],"2010-12-31":["price":400000,"count":2],"2019-10-31":["price":null,"count":null]}'
如果我从数据中删除列标题
s = re.sub('"price":','',s)
s = re.sub('"count":','',s)
那么这就行了。。。(需要导入json)
这是生成的数据帧
2014-12-31 2013-12-31 2010-12-31 2019-10-31
0 385000 380000 400000 None
1 3 2 2 None
及
给这个
0 1
2014-12-31 385000 3
2013-12-31 380000 2
2010-12-31 400000 2
2019-10-31 None None
哦,我也尝试了df=pd.DataFrame(pd.Series)。这会创建不正确的数据帧。所示的
s
不是有效的Python对象。它看起来像一个嵌套的dict
,但是那些方括号不应该在那里,而且null
s也不应该在那里。请显示变量s
的实际值。请在使用语言时更具体、更谨慎。在Pandas中,Series
是一种序列类型,它使类似html Series的表达式变得混乱和不明确,并将字符串格式更改为序列所需的格式。这不是答案,是吗?为什么这里的输入字符串与问题中的输入不匹配?是的,这是一个答案,但不允许我使用列名,我认为这在熊猫身上是可能的。与原始问题相比,唯一的变化是数据在字符串中,因此我添加了周围的引号。此解决方案需要对原始数据进行完全重新格式化:(但是,我已经发布了一个解决方案。我将原始字段作为字符串-缺少包含引号的字段。
df.T
0 1
2014-12-31 385000 3
2013-12-31 380000 2
2010-12-31 400000 2
2019-10-31 None None
import pandas as pd
priceSeries = pd.Series([385000,380000,400000], index= ["2014-12-31","2013-12-31","2010-12-31"])
countSeries = pd.Series([3,2,2], index= ["2014-12-31","2013-12-31","2010-12-31"])
s = pd.DataFrame({"price": priceSeries,"count":countSeries})
s