我有一个如下的数据帧:
A B C
a1 b1 c1
a1 b2 c2
a2 b1 c3
a2 b2 c4
我想将其转换为如下内容:
A B1 B2
a1 c1 c2
a1 c1 c2
a2 c3 c4
a2 c3 c4
B中重复的值是列名称,其值在C列中。我希望它们是数据帧的列
事实上,数据集是通过展平一棵树创建的,其中有更多的列,每个列都是一个内部节点。第一列是根,C是叶
以下是我的一些尝试:
cmd = "b1,b2"
cond = ""
for c in cmd.split(","):
cond += "|" + f" (df['B'] == '{c}') "
cols = [c] + cols
new_col = main_df[main_df['B'] == c]['C']
df[c] = new_col
df = df[eval(cond)]
然而,它不起作用。
尝试:
df.pivot('A',columns='B')
您将只获得两行,但您的四行无论如何都是重复的两行。
A C
B b1 b2
0 a1 c1 c2
1 a2 c3 c4
问题内容: 我想知道如何在Spark(Pyspark)中实现以下目标 初始数据框: 结果数据框: 我通常使用以下方法设法将新列“追加”到数据框: 但是,我不知道如何为新列实现这种“行移位”,以便新列具有上一行的字段值(如示例中所示)。我也无法在API文档中找到有关如何通过索引访问DF中特定行的任何内容。 任何帮助,将不胜感激。 问题答案: 您可以如下使用窗口功能 但是有一些重要的问题: 如果您需要
问题内容: 我正在使用PySpark,并且有一个带有一堆数字列的Spark数据框。我想添加一列,它是所有其他列的总和。 假设我的数据框具有列“ a”,“ b”和“ c”。我知道我可以这样做: 问题是我不想单独键入每列并添加它们,尤其是当我有很多列时。我希望能够自动执行此操作,或者希望通过指定要添加的列名列表来执行此操作。还有另一种方法吗? 问题答案: 这并不明显。我看不到spark Datafra
我有一个来自excel电子表格的数据框,其中我找到了每个域出现的频率。我想添加域频率计数到它的相应域。 下面是查找频率并尝试将其添加到相应域的代码。 当我从数据帧打印出频率时:
我用的是PySpark,我有一个Spark数据框架,里面有一堆数字列。我想添加一列,它是所有其他列的总和。 假设我的数据帧具有列“a”、“b”和“c”。我知道我能做到: 问题是,我不想单独键入每列并添加它们,尤其是如果我有很多列。我希望能够自动执行此操作,或者通过指定要添加的列名列表来执行此操作。有其他方法吗?
问题内容: 我有一个现有的数据框,我需要添加一个额外的列,每行将包含相同的值。 现有的df: 新的df: 我知道如何追加现有的series / dataframe列。但这是另一种情况,因为我所需要的只是添加“名称”列,并将每一行设置为相同的值,在本例中为“ abc”。 问题答案: 将添加新列并将所有行设置为该值:
假设我有一个数据框 和列名称列表 如何将新列添加到以零为值的数据帧中?