小编Sko*_*peo的帖子

仅选择一个多索引DataFrame索引

我正在尝试使用多索引DataFrame中的一个索引创建一个新的DataFrame.

                   A         B         C
first second                              
bar   one     0.895717  0.410835 -1.413681
      two     0.805244  0.813850  1.607920
baz   one    -1.206412  0.132003  1.024180
      two     2.565646 -0.827317  0.569605
foo   one     1.431256 -0.076467  0.875906
      two     1.340309 -1.187678 -2.211372
qux   one    -1.170299  1.130127  0.974466
      two    -0.226169 -1.436737 -2.006747
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想要这样的事情:

In: df.ix[level="first"]
Run Code Online (Sandbox Code Playgroud)

和:

Out:

               A         B         C
first                               
bar        0.895717  0.410835 -1.413681
           0.805244  0.813850  1.607920
baz       -1.206412  0.132003  1.024180
           2.565646 -0.827317  0.569605
foo        1.431256 -0.076467  0.875906
           1.340309 -1.187678 -2.211372
qux       -1.170299  1.130127  0.974466
          -0.226169 -1.436737 -2.006747
` …
Run Code Online (Sandbox Code Playgroud)

python indexing select dataframe pandas

18
推荐指数
2
解决办法
2万
查看次数

DataFrame持久性错误的Pandas _metadata

我终于弄清楚了如何从DataFrame中使用_metadata,一切正常,除了我无法持久保存它,例如hdf5或json。我知道它是可行的,因为我复制了框架,而_metadata属性则复制了“ non _metadata”属性,但没有。

df = pandas.DataFrame #make up a frame to your liking
pandas.DataFrame._metadata = ["testmeta"]
df.testmeta = "testmetaval"
df.badmeta = "badmetaval"
newframe = df.copy()
newframe.testmeta -->outputs "testmetaval"
newframe.badmeta ---> raises attribute error

#json test
df.to_json(Path)
revivedjsonframe = pandas.io.json.read_json(Path)
revivedjsonframe.testmeta ---->raises Attribute Error

#hdf5 test
revivedhdf5frame.testmeta ---> returns None
Run Code Online (Sandbox Code Playgroud)

这个人/sf/answers/1800100361/说对他有用,但是我是这个网站(和熊猫)的新手,无法发布到该主题或直接问他。

python metadata pytables pandas

5
推荐指数
2
解决办法
1134
查看次数

在Postgres中将嵌套键值添加到JSONB

我试图将密钥附加到postgres中的嵌套jsonb中,但是出现错误。本质上,我从一个json开始:

{"tel": "123", "name": "foo", "new_info": {"a": "bar"}}
Run Code Online (Sandbox Code Playgroud)

并且我想附加{"b", "baz"}到“ new_info”中,使得结果jsonb为:

{"tel": "123", "name": "foo", "new_info": {"a": "bar", "b":"baz"}}
Run Code Online (Sandbox Code Playgroud)

我正在使用以下命令来获取原始的jsonb:

CREATE TABLE mytable (
 ID serial NOT NULL PRIMARY KEY,
 data jsonb NOT NULL
);


INSERT INTO mytable (data)
VALUES
 (
 '{ "name": "foo", "tel": "123"}'
 );

UPDATE mytable SET data = jsonb_set(data, '{new_info}', '{"a":"bar"}', TRUE) WHERE data @> '{"name": "foo"}' ;
Run Code Online (Sandbox Code Playgroud)

并尝试使用以下命令来更新“ new_info”,该方法将不起作用:

WITH orig_new_info AS (SELECT data#>'{new_info}' FROM mytable WHERE data @> '{"name": "foo"}')
WITH updated_new_info …
Run Code Online (Sandbox Code Playgroud)

sql postgresql json jsonb

5
推荐指数
1
解决办法
1660
查看次数

标签 统计

pandas ×2

python ×2

dataframe ×1

indexing ×1

json ×1

jsonb ×1

metadata ×1

postgresql ×1

pytables ×1

select ×1

sql ×1