小编Lau*_*nol的帖子

在 Plotly Express 中使用 Pandas 索引

Plotly Express允许我轻松绘制Pandas 数据框,如他们的示例中所述。我不想使用 x 的命名列和 y 的命名列,而是将数据框的索引用于 x,将命名列用于 y。

使用命名列的示例

import plotly.express as px
iris = px.data.iris()
fig = px.scatter(iris, x="sepal_width", y="sepal_length")
fig.show()
Run Code Online (Sandbox Code Playgroud)

我想要什么(虚假示例)

import plotly.express as px
iris = px.data.iris()
fig = px.scatter(iris, x="index", y="sepal_length")
fig.show()
Run Code Online (Sandbox Code Playgroud)

这显然抛出:

ValueError:“x”的值不是“data_frame”中列的名称。预期 ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'species', 'species_id'] 之一但收到:索引

丑陋的修复

import plotly.express as px
iris = px.data.iris().reset_index()
fig = px.scatter(iris, x="index", y="sepal_length")
fig.show()
Run Code Online (Sandbox Code Playgroud)

python pandas plotly plotly-python

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

删除Hive外部表而不删除数据

目标是销毁Hive架构,但保留数据.

给定一个Hive外部表,例如使用脚本1创建,可以使用脚本2删除它.这将删除数据(删除文件夹/user/me/data/).此文件夹必须保留用于其他项目.

长期搜索到目前为止还没有产生任何结果......

脚本1:创建外部表

CREATE EXTERNAL TABLE external_hive_table(
    column1 STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY
    '\t'
STORED AS TEXTFILE
LOCATION
   '/user/me/data/'
TBLPROPERTIES (
    "skip.header.line.count"="1");
Run Code Online (Sandbox Code Playgroud)

脚本2:删除外部表(丢弃数据)

ALTER TABLE
    external_hive_table
SET TBLPROPERTIES (
    'EXTERNAL'='FALSE');

DROP TABLE external_hive_table;
Run Code Online (Sandbox Code Playgroud)

编辑:脚本3:删除外部表(保留数据)

 DROP TABLE external_hive_table;
Run Code Online (Sandbox Code Playgroud)

hadoop hive hortonworks-data-platform

8
推荐指数
1
解决办法
1万
查看次数

Yaml 从文件中安全加载特殊字符 °

我正在尝试使用 PyYAML 读取 yml 配置文件。请参阅下面此类文件的示例。所需字段可能包含特殊字符,例如\xc2\xb0。下面示例中的结果字符串不是所需的\xc2\xb0C,而是\xc3\x82\xc2\xb0C.

\n\n

目标只是阅读\xc2\xb0C。我可以控制配置文件,因此转义或引用不是问题。之后也可以进行解码、替换或其他操作,但它们也应该适用于没有特殊字符的字符串和具有其他特殊字符的字符串。

\n\n

然而到目前为止,我在这条路上还没有取得成功。

\n\n

例子

\n\n

测试.yml

\n\n
super_important_variable: \xc2\xb0C\n
Run Code Online (Sandbox Code Playgroud)\n\n

代码

\n\n
import yaml\nwith open(\'test.yml\', \'r\') as open_yml:\n    print(yaml.safe_load(open_yml))\n
Run Code Online (Sandbox Code Playgroud)\n\n

当前结果

\n\n
{\'super_important_variable\': \'\xc3\x82\xc2\xb0C\'}\n
Run Code Online (Sandbox Code Playgroud)\n\n

期望的结果

\n\n
{\'super_important_variable\': \'\xc2\xb0C\'}\n
Run Code Online (Sandbox Code Playgroud)\n\n

奇怪的是,这会返回正确的结果:

\n\n
import yaml\nyml_str = "super_important_variable: \xc2\xb0C"\nyaml.safe_load(yml_str)\n\n> {\'super_important_variable\': \'\xc2\xb0C\'}\n
Run Code Online (Sandbox Code Playgroud)\n

python yaml pyyaml

2
推荐指数
1
解决办法
4848
查看次数