python - 如何将一列连接到不是 None 的 pandas 列表的现有列中?

标签 python python-3.x pandas

我正在尝试将一个列连接到一个列列表。它连接列中的所有数据。但是,我不想连接不是 NaN 或 None 的列。

data = {'Name':['Tom', 'nick'], 'Grade':[[20, 21],[ 19, 18]],'Science':['23',None]} 
df=pd.DataFrame(data)
df['Grade']=df['Grade'].append(df['Science'],ignore_index=True)
df.apply(lambda row: row['Grade'].append(row['Science']), axis=1)

我得到的结果是:

    Name    Grade   Science
0   Tom     [20, 21, 23]    23
1   nick    [19, 18, None]  None

我想要什么:

    Name    Grade   Science
0   Tom     [20, 21, 23]    23
1   nick    [19, 18]    None

谢谢

最佳答案

您可以检查要附加的 None:

df['Grade'] = df.apply(lambda row: row['Grade'] + [row['Science'] ] 
                                      if row['Science'] is not None else row['Grade'], 
                       axis=1)

输出:

0    [20, 21, 23]
1        [19, 18]
dtype: object

关于python - 如何将一列连接到不是 None 的 pandas 列表的现有列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61511122/

相关文章:

python - 这是在两个线程之间使用变量的正确方法吗?

python - Python 3.6+ 中是否有格式化的字节字符串文字?

python - 将 python IDLE 更新到 3.5

python - 如何仅对分组的列进行分组和加法

python - sklearn r2_score 和 python stats lineregress 函数给出了非常不同的 R^2 值。为什么?

python - 如何从 CSV 中提取命名列?

python - 如何在具有不同输入可能性的命令行上运行 python 程序

python - 与 tensorflow 集成

python - 将字符串更改为列表数据类型

python - 比 grouby/shift 更快的替代品