我有以下代码将两列连接到一个新列中:
import pandas as pd
d = {
'name': ['Tomek', 'Jacek', 'Placek'],
'surname': ['A', 'B', 'C'],
}
df = pd.DataFrame(d)
df['fullname'] = df['name'] + ' ' + df['surname']
print(df)
# output:
# name surname fullname
# 0 Tomek A Tomek A
# 1 Jacek B Jacek B
# 2 Placek C Placek C
但是,我需要使用字符串格式:
import pandas as pd
d = {
'name': ['Tomek', 'Jacek', 'Placek'],
'surname': ['A', 'B', 'C'],
}
df = pd.DataFrame(d)
df['fullname'] = f"{df['name']} {df['surname']}"
print(df)
,但输出为:
# name surname fullname
# 0 Tomek A 0 Tomekn1 Jacekn2 PlaceknName: n...
# 1 Jacek B 0 Tomekn1 Jacekn2 PlaceknName: n...
# 2 Placek C 0 Tomekn1 Jacekn2 PlaceknName: n...
如何使用字符串格式化,并且仍然具有像第一个输出一样?
我需要使用字符串格式
使用zip()
,然后列表理解
df['fill_name']=[f"{a} {b}" for a,b in zip(df.name,df.surname)]
print(df)
name surname fill_name
0 Tomek A Tomek A
1 Jacek B Jacek B
2 Placek C Placek C
在没有列表理解的情况下尝试一下:
-
pandas.Series.str.cat
-系列/索引中的串联字符串与给定的分离器。
ex。
import pandas as pd
d = {
'name': ['Tomek', 'Jacek', 'Placek'],
'surname': ['A', 'B', 'C'],
}
df = pd.DataFrame(d)
df['fill_name']= df.name.str.cat(df.surname,sep=" ")
print(df)
o/p:
name surname fill_name
0 Tomek A Tomek A
1 Jacek B Jacek B
2 Placek C Placek C