我有一个这样的数据框
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)
有没有其他方法可以做到这一点?
我有一个这样的数据集
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) 我有一个像这样的数据框
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) 我有一个这样的数据框
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 …
apache-spark ×2
pyspark ×2
python ×2
dataframe ×1
explode ×1
indexing ×1
pandas ×1
python-3.x ×1
r ×1