我来自 R 背景,想知道是否有单行代码可以像 dplyr 一样向 Pandas 中的现有数据框添加几个新列。如果有这个代码:
import pandas as pd
df = pd.DataFrame({'a': range(1, 11)})
df['b'] = range(11, 21)
df['c'] = range(21, 31)
df['d'] = range(31, 40)
df['e'] = range(41, 50)
有没有办法在一行中将所有列添加到 df 中? 我在 R 中想要的一个例子是:
library(dplyr)
df <- data.frame('a' = 1:10)
df <- df %>% mutate(b = 11:20, c = 21:30, d = 31:40, e = 41:50)
最佳答案
有赋值
:
df.assign(b=range(11,21), c=range(21,31), d=range(31,41))
有了字典,事情就更简单了:
# assume you get this from somewhere else
val_dict = {'b': range(11,21), 'c':range(21,31)}
df.assign(**val_dict)
注意 当 b
不是关键字参数的可能选择时,第二种方法是预期的,例如,有空格 'a b'
.
关于python - Pandas :在一行中向数据框添加多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66591194/