Python 通过组合索引#,字符串创建列

Python 通过组合索引#,字符串创建列,python,pandas,Python,Pandas,我有一个包含一列字符串的数据帧。我想创建一个新列,将索引号和字符串列组合在一个列表中。以下代码在循环中迭代执行此操作: df=pd.DataFrame({'strings': ['string1','string2','string3']}) new_col=[] for i in df['strings'].index.values: new_col.append(str(i)+','+df['strings'][i]) df['new_col']=new_col 上面的代码可以工作

我有一个包含一列字符串的数据帧。我想创建一个新列,将索引号和字符串列组合在一个列表中。以下代码在循环中迭代执行此操作:

df=pd.DataFrame({'strings': ['string1','string2','string3']})
new_col=[]
for i in df['strings'].index.values:
    new_col.append(str(i)+','+df['strings'][i])
df['new_col']=new_col

上面的代码可以工作,但速度很慢。如何在列表理解中做到这一点?

您可以将索引转换为字符串,并像往常一样添加字符串(数组):

输出:

   strings    new_col
0  string1  0,string1
1  string2  1,string2
2  string3  2,string3
   strings    new_col
0  string1  0,string1
1  string2  1,string2
2  string3  2,string3

您可以将索引转换为字符串,并像往常一样添加字符串(数组):

输出:

   strings    new_col
0  string1  0,string1
1  string2  1,string2
2  string3  2,string3
   strings    new_col
0  string1  0,string1
1  string2  1,string2
2  string3  2,string3

这将提供一个包含索引和字符串列的新列

df['new'] = df.index.astype(str) + df['strings']

这将提供一个包含索引和字符串列的新列

df['new'] = df.index.astype(str) + df['strings']

如果您想要列表理解,我建议您使用
zip()

输出:

   strings    new_col
0  string1  0,string1
1  string2  1,string2
2  string3  2,string3
   strings    new_col
0  string1  0,string1
1  string2  1,string2
2  string3  2,string3

如果您想要列表理解,我建议您使用
zip()

输出:

   strings    new_col
0  string1  0,string1
1  string2  1,string2
2  string3  2,string3
   strings    new_col
0  string1  0,string1
1  string2  1,string2
2  string3  2,string3

重置索引,然后使用列创建新列

df=df.reset_index()
df['new_col']=df['index'].astype(str)+','+df['strings']

重置索引,然后使用列创建新列

df=df.reset_index()
df['new_col']=df['index'].astype(str)+','+df['strings']

请考虑至少增加一些解释,如为什么这个问题的答案,请考虑至少增加一些解释,为什么回答这个问题。