python - Pandas :在一行中向数据框添加多列

标签 python pandas dataframe

我来自 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/

相关文章:

python - 具有两种可能正则表达式的子字符串

python - 计算唯一对并将计数存储在矩阵中

python - 使用 pandas groupby 创建包含父数据框所有列的新数据框

python - 防止 flask 在变化时重新加载

python - 范围太大 Python

python - 主动份额措施的计算

python - Pandas : Get binary OR/AND for all the columns in a dataframe

python - Pandas - 从行数中获取汇总数据框

python - 如何从 Ruby 调用 Python 代码?

python - 排序二维列表python