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']
请考虑至少增加一些解释,如为什么这个问题的答案,请考虑至少增加一些解释,为什么回答这个问题。