Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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_List_Pandas_Dataframe - Fatal编程技术网

Python 将数据帧列中的整数转换为列表

Python 将数据帧列中的整数转换为列表,python,list,pandas,dataframe,Python,List,Pandas,Dataframe,我有一个包含整数值列的pandas数据框,但我似乎不知道如何将列中的值放入列表中 那么比如说, NUMBERS ------> NUMBERS 1 [1] 2 [2] 3 [3] 4 [4] 5 [5] 6 NaN 7 [7] 8 NaN

我有一个包含整数值列的pandas数据框,但我似乎不知道如何将列中的值放入列表中

那么比如说,

NUMBERS ------> NUMBERS
 1                [1]
 2                [2]
 3                [3]
 4                [4]
 5                [5]
 6                NaN
 7                [7]
 8                NaN
谢谢。

这是一种方法

df['NUMBERS'] = df['NUMBERS'].apply(lambda x: [x])
但是,除非您有非常具体的原因,否则不鼓励这样做,因为您失去了
熊猫
的矢量化优势

要控制值为
np.nan
时的行为:

df = pd.DataFrame({'NUMBERS': list(range(1, 8))})

df['NUMBERS'] = df['NUMBERS'].apply(lambda x: [int(x)] if not pd.isnull(x) \
                                               in (6, 8) else np.nan)
你也可以这样做:

大堆
df[“NUMBERS”].值。重塑(5,1)
,这将给您

array([[1],
       [2],
       [3],
       [4],
       [5]])
这将是一个数组,它将保持
熊猫
的矢量化优势

名单 或者,要获取列表列表,您可以执行以下操作:

[[x]表示df[“数字”]]中的x

这将使:
[[1]、[2]、[3]、[4]、[5]]

列表的DF 正如@piRSquared所建议的,您可以:
df.assign(Numbers=df.Numbers.values.reformate(-1,1.tolist())

将返回另一个DF,每个值作为列表:

  Numbers
0     [1]
1     [2]
2     [3]
3     [4]
4     [5]

numpy
解决方案

df['Num']=df.NUMBERS.values[:,None].tolist()
df
Out[322]: 
   NUMBERS  Num
0        1  [1]
1        2  [2]
2        3  [3]
3        4  [4]
4        5  [5]

谢谢,我试试看。我对熊猫很陌生,所以这些矢量化的好处到底是什么,如果你不想深入的话,一个链接就足够了。另外,如何防止在使用apply时将“Nan”存储在列表中?@Blank在数据中包含此类边缘情况通常是一个好主意。因此,基本上,该列也有带有Nan值的空单元格,但我只希望列表中的整数,并排除Nan值。我正试图编辑主要问题,以包括这一点,但我不知道如何感谢你!,已成功编辑它。当我尝试更新的解决方案时,我遇到了以下错误---->ufunc“isnan”不支持输入类型,并且无法根据强制转换规则“安全”将输入安全强制为任何支持的类型。。。列的内容为object类型。这有关系吗?用
df.assign(Numbers=df.Numbers.values.reforme(-1,1.tolist())
Good suggestion@piRSquared,我没想到这个。这就是你的答案。我只是把它包起来,这样它就能产生OP要求的结果。我本来打算提供这个答案,但我认为这基本上就是你想要的。因此,我为您提供了使其工作的包装器。你值得表扬(-: