Agn*_*Lee 3 python dataframe pandas
我来自 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)
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以将所有列添加到 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)
Run Code Online (Sandbox Code Playgroud)
有assign:
df.assign(b=range(11,21), c=range(21,31), d=range(31,41))
Run Code Online (Sandbox Code Playgroud)
当你有字典时,事情就更容易了:
# assume you get this from somewhere else
val_dict = {'b': range(11,21), 'c':range(21,31)}
df.assign(**val_dict)
Run Code Online (Sandbox Code Playgroud)
请注意,b当关键字参数无法选择时,例如具有空格,则需要使用第二种方法'a b'。