小编phi*_*thy的帖子

根据其他数据框中的索引列表从其他数据框中向数据框中添加新列

我有两个数据帧,数据帧中的每一行A都有一个索引列表,这些索引对应于数据帧中的条目B以及一组其他值。我想以某种方式加入两个数据帧,以使in中的每个条目都B具有其他值,A其中in 的索引位于in 中的索引B列表中A

到目前为止,我已经找到了一种提取该行中B每一行的索引列表的行的方法,A但是只能从该答案逐行进行,但是然后我不确定从何处去?另外,由于索引列表的大小会发生变化,因此不确定是否有更好的方法可以动态地对Pandas进行操作。

import pandas as pd
import numpy as np

# Inputs
A = pd.DataFrame.from_dict({
    "indices": [[0,1],[2,3],[4,5]],
    "a1": ["a","b","c"],
    "a2": [100,200,300]
})

print(A)
>>    indices a1   a2
>> 0  [0, 1]  a  100
>> 1  [2, 3]  b  200
>> 2  [4, 5]  c  300

B = pd.DataFrame.from_dict({
    "b": [10,20,30,40,50,60]
})

print(B)
>>     b
>> 0  10
>> 1  20 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

使用 Python 和 PySpark 提取 URL 参数

假设我有一个充满 URL 的列,如下所示:

+------------------------------------------+
|url                                       |
+------------------------------------------+
|https://www.example1.com?param1=1&param2=a|
|https://www.example2.com?param1=2&param2=b|
|https://www.example3.com?param1=3&param2=c|
+------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

从该列中提取 URL 参数并将它们作为列添加到数据框中以生成以下内容的最佳方法是什么?

+-------------------------------------------+---------------+
|                                        url| param1| param2|
+-------------------------------------------+---------------+
|https://www.example1.com?param1=1&param2=a |      1|      a|
|https://www.example2.com?param1=2&param2=b |      2|      b|
|https://www.example3.com?param1=3&param2=c |      3|      c|
|etc...                                     | etc...| etc...|
+-------------------------------------------+---------------+
Run Code Online (Sandbox Code Playgroud)

我的尝试

我可以想到两种可能的方法来做到这一点,使用functions.regexp_extractpyspark 库或使用标准库中的urllib.parse.parse_qsand 。urllib.parse.urlparse前一种解决方案使用正则表达式,这是一种从字符串中提取参数的挑剔方法,但后者需要包装在 UDF 中才能使用。

+------------------------------------------+
|url                                       |
+------------------------------------------+
|https://www.example1.com?param1=1&param2=a|
|https://www.example2.com?param1=2&param2=b|
|https://www.example3.com?param1=3&param2=c|
+------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

正则表达式解决方案:

+-------------------------------------------+---------------+
|                                        url| param1| param2|
+-------------------------------------------+---------------+
|https://www.example1.com?param1=1&param2=a |      1|      a|
|https://www.example2.com?param1=2&param2=b |      2|      b|
|https://www.example3.com?param1=3&param2=c |      3|      c|
|etc...                                     | etc...| etc...| …
Run Code Online (Sandbox Code Playgroud)

python url dataframe apache-spark pyspark

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

标签 统计

dataframe ×2

python ×2

apache-spark ×1

pandas ×1

pyspark ×1

url ×1