【发布时间】:2021-09-29 05:24:44
【问题描述】:
我有一个数据框
| Name |
|---|
| Joe Smith |
| Jane Doe |
| Homer Simpson |
我正在尝试将其格式化为
| Name |
|---|
| Smith, Joe |
| Doe, Jane |
| Simpson, Homer |
我有这个代码,它适用于我列表中约 80% 的用户,但有些用户没有正确使用。
invalid_users = ['Test User', 'Test User2', 'Test User3']
for index, row in df_Users.iterrows():
gap_pos = df_Users["Name"][index].find(" ")
if gap_pos > 0 and row["Name"] not in invalid_users:
row["Name"] = df_Users["Name"][index][len(df_Users["Name"][index])-gap_pos+1:].strip() +', ' + df_Users["Name"][index][:gap_pos]
未正确通过的用户,通常他们的姓在某处被截断 - 即 Simpson ==> mpson
我在这里做错了什么?
【问题讨论】:
-
如果你仍然想要这个循环,请改用
split,"Joe Smith".split(" ")会给你一个类似['Joe', 'Smith']的列表 -
为什么是
[len(df_Users["Name"][index])-gap_pos+1:]?一个简单的[gap_pos+1:]应该可以(但最好还是使用上述替代方法之一)。
标签: python pandas string dataframe