У меня есть столбец с именем id, а данные выглядят так:
+ ---- + |id |+ ---- + |1 ||2 ||3 ||4 ||5 ||1 ||2 ||3 ||4 |+ ---- +
Я хочу заменить первую 6 строку 1,2,3,4,5,6 на emp и вторую 1,2,3,4 на std: возможно?
1,2,3,4,5,6
emp
std
Я пытался использовать замену, но не получил желаемого ответа
Для pyspark вы можете использовать что-то вроде ниже;
>>> from pyspark.sql import Row >>> import pyspark.sql.functions as F >>> >>> df = sc.parallelize([1,2,3,4,5,6,1,2,3,4]).map(lambda x: Row(x)).toDF(['col']) >>> df.show() +---+ |col| +---+ | 1| | 2| | 3| | 4| | 5| | 6| | 1| | 2| | 3| | 4| +---+ >>> from pyspark.sql.window import Window >>> df = df.withColumn("id", F.row_number().over(Window.orderBy(F.lit('A')))) >>> df = df.withColumn('col', F.when(df.id < 7, 'emp').when(df.id >= 7, 'std')).select('col') >>> df.show() +---+ |col| +---+ |emp| |emp| |emp| |emp| |emp| |emp| |std| |std| |std| |std| +---+
Это работает:
import pandas as pd df=pd.DataFrame({'id':[1,2,3,4,5,6,7,8,9,10],'data':[1,2,3,4,5,6,1,2,3,4]}) df.loc[:6,'New_COl'] = "emp" df.loc[6:,'New_COl'] = "std"