Python 3.5 将列中的数字提取到新列中
Python 3.5 Extract Digits from Column into New Column
我正在尝试提取 CSV 中某列数字的最后 5 位数字并将其添加为附加列。我的实际数据中的列比较多,数字有几千行。例如:
Column 1, Column 2, Column 3, Column 4
3333333, 1234567, 4444444, 5555555
7777777, 7654321, 5555555, 6666666
我希望它是:
Column 1, Column 2, Column 3, Column 4, Column 5
33333333, 1234567, 44444444, 55555555, 34567
77777777, 7654321, 55555555, 66666666, 54321
到目前为止,我已经尝试了 findall 的迭代,并认为正则表达式将提供最佳解决方案。我可以提取该列,虽然不完全是我想做的,但到目前为止我已经做到了。
import csv
print('Column 1, Column 2, Column 3, Column 4, Column 5')
with open('data1', 'r') as f:
reader=csv.reader(f)
next(reader)
for row in reader:
print(row[0], row[1], row[2], row[3], row[1][-5:], sep=', ')
这是输出:
$ cat data1
Column 1, Column 2, Column 3, Column 4
3333333, 1234567, 4444444, 5555555
7777777, 7654321, 5555555, 6666666
$ python3 a.py
Column 1, Column 2, Column 3, Column 4, Column 5
3333333, 1234567, 4444444, 5555555, 34567
7777777, 7654321, 5555555, 6666666, 54321
我正在尝试提取 CSV 中某列数字的最后 5 位数字并将其添加为附加列。我的实际数据中的列比较多,数字有几千行。例如:
Column 1, Column 2, Column 3, Column 4
3333333, 1234567, 4444444, 5555555
7777777, 7654321, 5555555, 6666666
我希望它是:
Column 1, Column 2, Column 3, Column 4, Column 5
33333333, 1234567, 44444444, 55555555, 34567
77777777, 7654321, 55555555, 66666666, 54321
到目前为止,我已经尝试了 findall 的迭代,并认为正则表达式将提供最佳解决方案。我可以提取该列,虽然不完全是我想做的,但到目前为止我已经做到了。
import csv
print('Column 1, Column 2, Column 3, Column 4, Column 5')
with open('data1', 'r') as f:
reader=csv.reader(f)
next(reader)
for row in reader:
print(row[0], row[1], row[2], row[3], row[1][-5:], sep=', ')
这是输出:
$ cat data1
Column 1, Column 2, Column 3, Column 4
3333333, 1234567, 4444444, 5555555
7777777, 7654321, 5555555, 6666666
$ python3 a.py
Column 1, Column 2, Column 3, Column 4, Column 5
3333333, 1234567, 4444444, 5555555, 34567
7777777, 7654321, 5555555, 6666666, 54321