小编Har*_*pta的帖子

计算 R 中每个组中每个类别的百分比

我有一个这样的数据框

Group    Category    Freq
1       A           2
1       B           3
1       C           5
2       A           3
2       B           1
2       C           6
Run Code Online (Sandbox Code Playgroud)

我想介绍第四列,它计算每个组内每个类别的百分比。

Group    Category    Freq       % (calculated per group, for categories)
    1       A           2       20
    1       B           3       30
    1       C           5       50
    2       A           5       25
    2       B           1       5
    2       C           14      70
Run Code Online (Sandbox Code Playgroud)

我尝试了以下(没有成功)

as.data.frame(prop.table(table(myDF),1)*100)
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以做到这一点?

r

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

基于元组的pandas数据框子集

我有一个这样的数据集

Firstnames = ['AA','BB','CC','AA','CC']
Lastnames = ['P', 'Q', 'R', 'P', 'R']
values = [10, 13, 3, 22, 45]

df = pd.DataFrame(data = list(zip(Firstnames,Lastnames,values)), \
                  columns=['Firstnames','Lastnames','values'])
df

    Firstnames  Lastnames   values
0   AA          P           10
1   BB          Q           13
2   CC          R           3
3   AA          P           22
4   CC          R           45
Run Code Online (Sandbox Code Playgroud)

我有一个像这样的元组数组

lst = array([('AA', 'P'), ('BB', 'Q')])
Run Code Online (Sandbox Code Playgroud)

我想对df进行子集化,这样Firstname == 'AA' & Lastnames == 'P'Firstname == 'BB' & Lastnames == 'Q'

我可以手动执行此操作,但是我的数组非常大,我想以编程方式执行此操作

我的预期输出将是

Firstnames  Lastnames   values
AA          P           10 …
Run Code Online (Sandbox Code Playgroud)

python indexing dataframe python-3.x pandas

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

在pyspark中分解Maptype列

我有一个像这样的数据框

data = [(("ID1", {'A': 1, 'B': 2}))]
df = spark.createDataFrame(data, ["ID", "Coll"])
df.show()

+---+----------------+
| ID|            Coll|
+---+----------------+
|ID1|[A -> 1, B -> 2]|
+---+----------------+

df.printSchema()
root
 |-- ID: string (nullable = true)
 |-- Coll: map (nullable = true)
 |    |-- key: string
 |    |-- value: long (valueContainsNull = true)
Run Code Online (Sandbox Code Playgroud)

我想分解“Coll”列,以便

+---+-----------+
| ID| Key| Value|
+---+-----------+
|ID1|   A|     1|
|ID1|   B|     2| 
+---+-----------+
Run Code Online (Sandbox Code Playgroud)

我正在尝试在 pyspark 中执行此操作

如果我只使用一列,我就会成功,但我也想要 ID 列

df.select(explode("Coll").alias("x", "y")).show()

+---+---+
|  x|  y|
+---+---+
|  A| …
Run Code Online (Sandbox Code Playgroud)

explode apache-spark apache-spark-sql pyspark

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

在 PySpark 中提取特定行

我有一个这样的数据框

data = [(("ID1", "A", 1)), (("ID1", "B", 5)), (("ID2", "A", 12)), 
       (("ID3", "A", 3)), (("ID3", "B", 3)), (("ID3", "C", 5)), (("ID4", "A", 10))]
df = spark.createDataFrame(data, ["ID", "Type", "Value"])
df.show()

+---+----+-----+
| ID|Type|Value|
+---+----+-----+
|ID1|   A|    1|
|ID1|   B|    5|
|ID2|   A|   12|
|ID3|   A|    3|
|ID3|   B|    3|
|ID3|   C|    5|
|ID4|   A|   10|
+---+----+-----+
Run Code Online (Sandbox Code Playgroud)

我只想提取那些只包含一种特定类型 - “A”的行(或 ID)

因此我的预期输出将包含以下行

+---+----+-----+
| ID|Type|Value|
+---+----+-----+
|ID2|   A|    1|
|ID4|   A|   10|
+---+----+-----+
Run Code Online (Sandbox Code Playgroud)

对于每个 ID 可以包含任何类型 - A、B、C 等。我想提取那些包含一个且仅包含一个类型的 ID …

python apache-spark apache-spark-sql pyspark

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