Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将列连接到列表中的现有列中,而该列不是“无”?_Python_Python 3.x_Pandas - Fatal编程技术网

Python 如何将列连接到列表中的现有列中,而该列不是“无”?

Python 如何将列连接到列表中的现有列中,而该列不是“无”?,python,python-3.x,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']

我正在尝试将一列连接到列列表。它连接列中的所有数据。但是,我不想连接非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

谢谢

您可以检查
以附加:

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

我需要一个理解力

df.assign(Grade=[g if s is None else [*g, s] for g, s in zip(df.Grade, df.Science)])

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