我正在努力理解。
使用zip函数的优点是什么
df['full_name']=zip(df['name'],df['last name'])
不是
df['full_name']=df['name']+ " " + df['last name']
对于name
和last name
的元组使用第一种解决方案(为避免zip对象而转换为列表):
df['full_name']= list(zip(df['name'],df['last name']))
对于由空格连接的列使用:
df['full_name']=df['name']+ " " + df['last name']
:
df = pd.DataFrame({'name':['name1','name2'],
'last name':['last name1','last name2']})
df['full_name0']= zip(df['name'],df['last name'])
df['full_name1']= list(zip(df['name'],df['last name']))
df['full_name2']=df['name']+ " " + df['last name']
print (df)
name last name full_name0
0 name1 last name1 <zip object at 0x000000000F975DC0>
1 name2 last name2 <zip object at 0x000000000F975DC0>
full_name1 full_name2
0 (name1, last name1) name1 last name1
1 (name2, last name2) name2 last name2
print (type(df['full_name1'].iat[0]))
<class 'tuple'>
print (type(df['full_name2'].iat[0]))
<class 'str'>
在我看来,重要的不是zip。
df [' full_name '] = zip (df("名字"),df['姓名'])
列full_name
中的元素为元组
df [' full_name '] = df("名字")+";";+ df['姓']
如果您这样写,则列full_name
中的元素是字符串。
字符串更适合显示和打印,但是它的一些结构信息丢失了。
例如,name为"A"
, last name为"B C"
,如果用空格连接,则为"A B C"
。对于人来说没问题,但是对于机器来说,它无法分辨是"A"
"B C"
还是"A B"
"C"
,因为"结构信息"。
所以选择哪一个取决于你的目的。
zip用于将两个字典项合并为一个
mylist=list(zip(dict1,dict2))