【发布时间】:2020-09-03 22:03:22
【问题描述】:
我有一个正在使用的文本文件,它用空格而不是逗号分隔。我已经完成了其中的一些,总是创建一个长行,然后在需要的地方拆分为列。数据一直排到现在,我遇到了障碍。下面我有一些示例文本的数据框。
我正在尝试做的事情:
- 从系列中的 (0,Test) 开始。努力工作。
- 检查 (0,Test) 处的元素是否有第一个位置 (0) 的数字或字母
细绳。
如果数字存在,跳过或什么也不做。
如果存在字母,则需要在第一个空格出现时拆分代码:
df[['First Name', 'Test']] = df['Test'].str.split(" ", 1, expand=True)和 从“测试”列中删除名字并将其放在“名字”列中。 - 向下移动到下一行并重复,直到完成系列。
- (奖励):中间名首字母可以跟在名字后面(第 1 行)。如果可能的话 这也能被捕获吗?
代码
import pandas as pd
from pandas import DataFrame, Series
list = {'Test': ['9/21/2019 1 9/29/2019',
'Cynthia T. CC 9/21/2016 1 9/30/2019',
'9/12/2019 1 9/12/2012',
'Hannah A/R 9/20/2015 1 9/07/2016',
'John CC 9/26/2019 3 9/29/2019']}
df = pd.DataFrame(list)
# for n in df.Test:
# if n[0].isalpha:
# df[['First Name', 'Test']] = df['Test'].str.split(" ", 1,
expand=True)
# else:
# continue
print(df)
#----------------------------
# Currently:
# Test
# 0 9/21/2019 1 9/29/2019
# 1 Cynthia T. CC 9/21/2016 1 9/30/2019
# 2 9/12/2019 1 9/12/2012
# 3 Hannah A/R 9/20/2015 1 9/07/2016
# 4 John CC 9/26/2019 3 9/29/2019
# What I would like:
# Test First Name
# 0 9/21/2019 1 9/29/2019 NaN
# 1 CC 9/21/2016 1 9/30/2019 Cynthia T.
# 2 9/12/2019 1 9/12/2012 NaN
# 3 A/R 9/20/2015 1 9/07/2016 Hannah
# 4 CC 9/26/2019 3 9/29/2019 John
我们一如既往地感谢您的时间和知识。感谢您的帮助。
【问题讨论】:
-
如果您提供文件中文本的(未截断的)示例,我们可以提供帮助
-
另外,请让问题更简洁:)。我们只需要输入和预期输出
-
Anon01,上面的数据框是我正在使用的示例。此外,粘贴在 REM'd out 的代码底部的是当前正在显示的内容以及我想要显示的内容。就问题而言。如果 string[0] isalpha 然后执行 .str.split(" ", 1, expand=True) 并删除第一个名称并将其放在新列中,有没有办法通过一系列循环。就像上面的例子。如果您还有其他问题,请告诉我。
-
很难理解你想要什么。我会看看你是否可以让问题更简洁
-
很抱歉给您带来了困惑。我会编辑。