Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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_List_Dataframe - Fatal编程技术网

Python 如何将列表项附加到数据框中的特定列?

Python 如何将列表项附加到数据框中的特定列?,python,python-3.x,pandas,list,dataframe,Python,Python 3.x,Pandas,List,Dataframe,假设我有一个包含n项的字符串列表,比如: list1 = ['a','b',..'y','z'] 我不想将整个列表追加到一个数据框(这会创建n列),我只想将第一项追加到第一列,将最后一项追加到最后一列,并将两者之间的所有内容合并到中间的列中 我试过了 df = pd.DataFrame(list1) 但这会为每个字符串项创建一个单独的列,从而产生n列 我希望输出为3列的数据帧,例如: 0 1 2 0 a b+c

假设我有一个包含n项的字符串列表,比如:

    list1 = ['a','b',..'y','z']
我不想将整个列表追加到一个数据框(这会创建n列),我只想将第一项追加到第一列,将最后一项追加到最后一列,并将两者之间的所有内容合并到中间的列中

我试过了

    df = pd.DataFrame(list1)
但这会为每个字符串项创建一个单独的列,从而产生n列

我希望输出为3列的数据帧,例如:

         0       1        2
  0      a     b+c+d+..   z

请帮个忙

您可以分别解压列表的第一个值、中间值和结束值,并从这些值构造数据帧:

a, *b, c = list1
pd.DataFrame([a, b, c]).T

   0             1  2
0  a  [b, c ... y]  z

如果要将midde中的项目合并为字符串,可以执行以下操作:

pd.DataFrame([a, ''.join(b), c]).T

   0     1     2
0  a  bcd...y  z


在这些情况下,一种干净的解包方法是使用,就像在本例中一样,它允许您“捕获”iterable中的所有元素,这取决于哪些其他元素也被单独分配。在这种情况下,
b
将包含
a
c
之间的所有元素。那么,您可以手动执行以下操作:

a, *b, c = list1

df = pd.DataFrame([a, b, c]).T

   0                                                  1  2
0  a  [b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, ...  z
@yatu应该有一个——最好只有一个——显而易见的方法来做到这一点+我发了一封信:)