小编use*_*101的帖子

如何从带有未转义反斜杠的 JSON 文件中读取?

我有一个包含连接字符串的 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)

我该如何解决这个错误?

python json escaping python-2.7

9
推荐指数
1
解决办法
7872
查看次数

如何在 spark scala 中使用带有 2 列的 array_contains?

我有一个问题,我想检查一个字符串数组是否包含另一列中存在的字符串。我目前正在使用下面的代码,它给出了一个错误。

.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)

scala dataframe apache-spark

4
推荐指数
1
解决办法
8448
查看次数

如何在熊猫中将多个日期列合并为一个?

我有以下带有多个日期列及其值的数据框:

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)

dataframe pandas

3
推荐指数
1
解决办法
1822
查看次数

如何基于某些逻辑加入2个数据帧

我有一个带有以下双周数据的数据框

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)

python join left-join dataframe pandas

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

如何在Pandas中加入年份和月份的2个数据帧?

我有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)

python merge date dataframe pandas

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

如何在熊猫堆叠之前动态重命名列?

我有以下使用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)

python pandas

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

如何将列表列与 pyspark dataframe 列相交?

我有一个下面的 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)

dataframe pyspark

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

如何在python中将多个连续的重复字符替换为1个字符?

我在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)

python string

0
推荐指数
1
解决办法
4078
查看次数