我有一个数据框 df:
num_rows = 5
num_cols = 3
data = [
[10, 20, 30],
[10, 50, 60],
[70, 80, 90],
[20, 30, 10],
[20, 10, 20]
]
columns = [f"Column_{i+1}" for i in range(num_cols)]
df = spark.createDataFrame(data, columns)
|Column_1|Column_2|Column_3|
+--------+--------+--------+
| 10| 20| 30|
| 10| 50| 60|
| 70| 80| 90|
| 20| 30| 10|
| 20| 10| 20|
+--------+--------+--------+
我想根据第一列创建另一列具有 true/false 的列,其中第一个原始值为“true”,任何重复的值都是“fasle”。所以它看起来像:
|Column_1|Column_2|Column_3|Column_4|
+--------+--------+--------+--------+
| 10| 20| 30| TRUE|
| 10| 50| 60| FALSE|
| 70| 80| 90| TRUE|
| 20| 30| 10| TRUE|
| 20| 10| 20| FALSE|
只需使用Dataframe.duplicate即可得到结果
import pandas as pd
import numpy as np
def main():
data = [
[10, 20, 30],
[10, 50, 60],
[70, 80, 90],
[20, 30, 10],
[20, 10, 20]
]
df = pd.DataFrame(np.array(data), columns=[f"column_{i}" for i in range(len(data[0]))])
print(df)
df["column_4"] = ~df['column_0'].duplicated()
print(df)
这给出了
column_0 column_1 column_2
0 10 20 30
1 10 50 60
2 70 80 90
3 20 30 10
4 20 10 20
column_0 column_1 column_2 column_4
0 10 20 30 True
1 10 50 60 False
2 70 80 90 True
3 20 30 10 True
4 20 10 20 False