如何将ID号从A行分离到B行?
How to separate ID number from Row A to Row B?
所以基本上我在尝试这段代码时卡住了,但它没有拆分名称和号码。 PL 参考示例图像以了解所需的结果。
我试过的代码
您的引号和分隔符有问题。要清理数据框,请使用以下代码:
pd.read_csv('names_tab2.csv', quoting=1, header=None)[0] \
.str.split('\t', expand=True) \
.to_csv('clean_names.csv', index=False, header=False)
旧答案
使用 str.extract
:
假设这个数据框:
df = pd.DataFrame({'ColA': ['CAIN TAN86092142', 'YEO KIAT JUN81901613']})
print(df)
# Output:
ColA
0 CAIN TAN86092142
1 YEO KIAT JUN81901613
拆分第一个遇到的数字:
out = df['ColA'].str.extract(r'([^\d]*)(\d+)') \
.rename(columns={0: 'Name', 1: 'Number'})
print(out)
# Output:
Name Number
0 CAIN TAN 86092142
1 YEO KIAT JUN 81901613
更新:
Is there a way to remove the Name and Number when it outputs to the csv?
out.to_csv('data.csv', index=False, header=None)
# content of data.csv:
CAIN TAN,86092142
YEO KIAT JUN,81901613
当打开纯文本文件(或在本例中为纯文本 csv 文件)时,您可以使用 for 循环逐行浏览文件,如下所示(当前为 Python 3):
name = []
id_num = []
file = open('file.csv', 'r')
for f in file:
f = f.split(',') # split the data
name.append(str(f[0])) # append name to list
id_num.append(str(f[1])) # append ID to list
既然您已经在列表中获得了数据,您可以print/store按自己的意愿进行设置。
所以基本上我在尝试这段代码时卡住了,但它没有拆分名称和号码。 PL 参考示例图像以了解所需的结果。
我试过的代码
您的引号和分隔符有问题。要清理数据框,请使用以下代码:
pd.read_csv('names_tab2.csv', quoting=1, header=None)[0] \
.str.split('\t', expand=True) \
.to_csv('clean_names.csv', index=False, header=False)
旧答案
使用 str.extract
:
假设这个数据框:
df = pd.DataFrame({'ColA': ['CAIN TAN86092142', 'YEO KIAT JUN81901613']})
print(df)
# Output:
ColA
0 CAIN TAN86092142
1 YEO KIAT JUN81901613
拆分第一个遇到的数字:
out = df['ColA'].str.extract(r'([^\d]*)(\d+)') \
.rename(columns={0: 'Name', 1: 'Number'})
print(out)
# Output:
Name Number
0 CAIN TAN 86092142
1 YEO KIAT JUN 81901613
更新:
Is there a way to remove the Name and Number when it outputs to the csv?
out.to_csv('data.csv', index=False, header=None)
# content of data.csv:
CAIN TAN,86092142
YEO KIAT JUN,81901613
当打开纯文本文件(或在本例中为纯文本 csv 文件)时,您可以使用 for 循环逐行浏览文件,如下所示(当前为 Python 3):
name = []
id_num = []
file = open('file.csv', 'r')
for f in file:
f = f.split(',') # split the data
name.append(str(f[0])) # append name to list
id_num.append(str(f[1])) # append ID to list
既然您已经在列表中获得了数据,您可以print/store按自己的意愿进行设置。