[英]Assign a new column in pandas in a similar way as in pyspark
我有以下 dataframe:
df = pd.DataFrame([['A', 1],['B', 2],['C', 3]], columns=['index', 'result'])
指数 | 结果 |
---|---|
一个 | 1 |
乙 | 2 |
C | 3 |
我想创建一个新列,例如将“结果”列乘以 2,我只是想知道在 pandas 中是否有办法做到这一点,就像 pyspark 那样。
In pyspark:
df = df\
.withColumn("result_multiplied", F.col("result")*2)
我不喜欢每次我必须执行操作时都写 dataframe 的名称,因为它在 pandas 中完成,例如:
In pandas:
df['result_multiplied'] = df['result']*2
使用DataFrame.assign
:
df = df.assign(result_multiplied = df['result']*2)
或者,如果列result
在代码中处理之前是必要的 lambda function 用于处理列result
中的计数值:
df = df.assign(result_multiplied = lambda x: x['result']*2)
查看差异列的示例result_multiplied
由多个原始df['result']
计数,因为result_multiplied1
在mul(2)
之后使用乘列:
df = df.mul(2).assign(result_multiplied = df['result']*2,
result_multiplied1 = lambda x: x['result']*2)
print (df)
index result result_multiplied result_multiplied1
0 AA 2 2 4
1 BB 4 4 8
2 CC 6 6 12
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.