我有一个包含连接字符串的 JSON 文件:
abc.json
{
"host":"1.2.3.4",
"user":"abc",
"passwd":"s&]\yz$&u42/",
"dbname":"sample",
"port":2341
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试读取数据的 Python 脚本:
import psycopg2 as pg
dbconn = "C:\abc.json"
with open(dbconn) as conn_file:
conn = json.load(conn_file)
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误:
json.decoder.JSONDecodeError: Invalid \escape: line 4 column 16 (char 53)
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
我有一个问题,我想检查一个字符串数组是否包含另一列中存在的字符串。我目前正在使用下面的代码,它给出了一个错误。
.withColumn("is_designer_present", when(array_contains(col("list_of_designers"),$"dept_resp"),1).otherwise(0))
Run Code Online (Sandbox Code Playgroud)
错误:
java.lang.RuntimeException: Unsupported literal type class org.apache.spark.sql.ColumnName dept_resp
at org.apache.spark.sql.catalyst.expressions.Literal$.apply(literals.scala:77)
Run Code Online (Sandbox Code Playgroud) 我有以下带有多个日期列及其值的数据框:
date value_1 date value_2 date value_3
01-01-1990 1 01-01-1990 2 02-01-1990 4
02-01-1990 3 03-01-1990 20
04-01-1990 30
Run Code Online (Sandbox Code Playgroud)
输出:将所有日期列组合成超集日期列并相应地显示值。
date value_1 value_2 value_3
01-01-1990 1 2
02-01-1990 3 4
03-01-1990 20
04-01-1990 30
Run Code Online (Sandbox Code Playgroud) 我有一个带有以下双周数据的数据框
date value
15-06-2012 20
30-06-2012 30
Run Code Online (Sandbox Code Playgroud)
我需要加入另一个具有以下数据的数据框:
date cost
2-05-2011 5
3-04-2012 80
2-06-2012 10
3-06-2012 10
4-06-2012 30
5-06-2012 20
10-06-2012 10
15-06-2012 10
18-06-2012 30
20-06-2012 20
21-06-2012 30
22-06-2012 30
29-06-2012 20
29-10-2012 30
Run Code Online (Sandbox Code Playgroud)
我需要以这样一种方式加入2个数据帧,从另一个数据帧,我得到平均成本在2012年6月1日至15日之间,以填补15-06-2012成本,同样在30-06-2012成本,我得到平均值16 -06-2012至30-06-2012并获得以下结果
date value cost
15-06-2012 20 15 which is (10+10+30+20+10+10)/6
30-06-2012 30 26 which is (30+20+30+30+20)/5
Run Code Online (Sandbox Code Playgroud) 我有2个数据框,我希望在没有创建额外列的情况下,根据月份和年份加入它们:
例如:
df1:
date_1 value_1
2017-1-15 20
2017-1-31 30
2016-2-15 20
Run Code Online (Sandbox Code Playgroud)
DF2:
date_2 value_2
2017-1-1 30
Run Code Online (Sandbox Code Playgroud)
然后得到如下结果,即以月和年为基础合并.
date_1 value_1 value_2
2017-1-15 20 30
2017-1-31 30 30
2016-2-15 20
Run Code Online (Sandbox Code Playgroud) 我有以下使用groupby和sum创建的数据框:-
year_month Country
2008-01 Afghanistan 2
Albania 3
Argentina 4
2008-02 Afghanistan 3
Albania 4
Argentina 5
Run Code Online (Sandbox Code Playgroud)
我需要拆开包装,并希望将名称重命名为der_value_Afghanistan,der_value_Albania等作为列名,而不是阿富汗等。既然可能是100个或更多,是否有什么办法可以全部重命名而不是手动重命名?
year_month der_value_Afghanistan der_value_Albania der_value_Argentina
Run Code Online (Sandbox Code Playgroud) 我有一个下面的 pyspark 数据框,我需要创建新列 (new_col),它是 X 列和 Y 列中的常见项目,不包括 Z 中的项目。
df
id X Y Z new_col
1 [12,23,1,24] [13,412,12,23,24] [12] [23,24]
2 [1,2,3] [2,4,5,6] [] [2]
Run Code Online (Sandbox Code Playgroud) 我在python中有一个字符串,我想将多个连续的重复字符替换为1。例如:
st = "UUUURRGGGEENNTTT"
print(st.replace(r'(\w){2,}',r'\1'))
Run Code Online (Sandbox Code Playgroud)
但是这个命令似乎不起作用,请有人帮忙找出这个命令有什么问题吗?
还有一种方法可以解决这个问题,但想了解为什么上述命令失败以及有什么方法可以纠正它:
print(re.sub(r"([a-z])\1+",r"\1",st)) -- print URGENT
Run Code Online (Sandbox Code Playgroud)