如何根据列中字符串的索引拆分列,同时使用有效的方法解析所有 Dataframe
How to split a columns based on the index of the string in the columns while using a efficient method to parse all the Dataframe
我有一列用字符串值填充:
col_1
10500
25020
35640
45440
50454
62150
75410
我希望能够使用从第一列拆分出来的字符串值创建另外两列。我也想要一种有效的方法来做到这一点。
假设结果:
col_1
col_2
col_3
10500
10
500
25020
25
020
35640
35
640
45440
45
440
50454
50
454
62150
62
150
75410
75
410
到目前为止,我一直在尝试进行矢量化,但还没能实现它。
对于拆分部分,我解析行(使用 iterows,我知道必须尽可能避免 iterows。)并创建一个可用于填充新选项卡的列表,但在我的意见这种方式太过时了。
另外,我怎样才能有效地修改每个单元格?比如添加逗号,或者对它们进行操作?
谢谢。
使用 str
访问器:
df = df.join(df['col_1'].astype(str).str.extract('(?P<col_2>\d{2})(?P<col_3>\d{3})'))
print(df)
# Output:
col_1 col_2 col_3
0 10500 10 500
1 25020 25 020
2 35640 35 640
3 45440 45 440
4 50454 50 454
5 62150 62 150
6 75410 75 410
或简单几步:
df['col_1'] = df['col_1'].astype(str)
df['col_2'] = df['col_1'].str[:2]
df['col_3'] = df['col_1'].str[2:]
print(df)
# Output
col_1 col_2 col_3
0 10500 10 500
1 25020 25 020
2 35640 35 640
3 45440 45 440
4 50454 50 454
5 62150 62 150
6 75410 75 410
另一个例子:
df['col_1'] = df['col_1'].astype(str)
df['col_4'] = df['col_1'].str[:2] + '-' + df['col_1'].str[2:]
print(df)
# Output
col_1 col_4
0 10500 10-500
1 25020 25-020
2 35640 35-640
3 45440 45-440
4 50454 50-454
5 62150 62-150
6 75410 75-410
我有一列用字符串值填充:
col_1 |
---|
10500 |
25020 |
35640 |
45440 |
50454 |
62150 |
75410 |
我希望能够使用从第一列拆分出来的字符串值创建另外两列。我也想要一种有效的方法来做到这一点。
假设结果:
col_1 | col_2 | col_3 |
---|---|---|
10500 | 10 | 500 |
25020 | 25 | 020 |
35640 | 35 | 640 |
45440 | 45 | 440 |
50454 | 50 | 454 |
62150 | 62 | 150 |
75410 | 75 | 410 |
到目前为止,我一直在尝试进行矢量化,但还没能实现它。
对于拆分部分,我解析行(使用 iterows,我知道必须尽可能避免 iterows。)并创建一个可用于填充新选项卡的列表,但在我的意见这种方式太过时了。
另外,我怎样才能有效地修改每个单元格?比如添加逗号,或者对它们进行操作?
谢谢。
使用 str
访问器:
df = df.join(df['col_1'].astype(str).str.extract('(?P<col_2>\d{2})(?P<col_3>\d{3})'))
print(df)
# Output:
col_1 col_2 col_3
0 10500 10 500
1 25020 25 020
2 35640 35 640
3 45440 45 440
4 50454 50 454
5 62150 62 150
6 75410 75 410
或简单几步:
df['col_1'] = df['col_1'].astype(str)
df['col_2'] = df['col_1'].str[:2]
df['col_3'] = df['col_1'].str[2:]
print(df)
# Output
col_1 col_2 col_3
0 10500 10 500
1 25020 25 020
2 35640 35 640
3 45440 45 440
4 50454 50 454
5 62150 62 150
6 75410 75 410
另一个例子:
df['col_1'] = df['col_1'].astype(str)
df['col_4'] = df['col_1'].str[:2] + '-' + df['col_1'].str[2:]
print(df)
# Output
col_1 col_4
0 10500 10-500
1 25020 25-020
2 35640 35-640
3 45440 45-440
4 50454 50-454
5 62150 62-150
6 75410 75-410