Python一列的字符串分拆成三部分?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python一列的字符串分拆成三部分?相关的知识,希望对你有一定的参考价值。
原来的excel表格的PRODUCT列包含了很多信息,如下
PRODUCT
PN800/4-1800-10
NN300(66)-1400*6
NN300(66)-1600*6
把PRODUCT这一列的内容,分拆成ABC三列,如下
PRODUCT A B C
PN800/4-1800-10 PN800/4 1800 10
NN300(66)-1400*6 NN300(66) 1400 6
NN300(66)-1600*6 NN300(66) 1600 6
求助
感谢各位
用pandas库来处理比较方便
import pandas as pd
df=pd.read_excel('d:/你的文件名.xlsx') # 改成你自己文件的路径
df.PRODUCT.str.split(r'[\\+\\-*\\\\]',expand=True).rename(dict(enumerate(['PRODUCT','A','B'])),axis=1).to_excel('d:/结果.xlsx')
追问谢谢帮助,如果增加一个需求,就是把下列的首字母PN, NN,NN都单独拿出来,也作为一列,该怎么办。
PN800/4-1800-10
NN300(66)-1400*6
NN300(66)-1600*6
将python字典写入CSV列:第一列的键,第二列的值
【中文标题】将python字典写入CSV列:第一列的键,第二列的值【英文标题】:Write python dictionary to CSV columns: keys to first column, values to second 【发布时间】:2014-09-06 07:42:48 【问题描述】:我正在寻找一种将 python 字典写入列的方法(第一列中的键和第二列中的值)。这个link 展示了如何将列表写入列,但我想知道是否有一种方法可以在不将我的字典转换为两个压缩列表的情况下做到这一点。
myDict = 1:'a', 2:'b', 3:'c'
keyList = myDict.keys()
valueList = myDict.values()
rows = zip(keyList, valueList)
with open('test.csv', 'wb') as f:
writer = csv.writer(f)
for row in rows:
writer.writerow(row)
想要的结果:
1;a
2;b
3;c
【问题讨论】:
【参考方案1】:你可以简单地在 python 2.X 中做:
with open('test.csv', 'wb') as f:
writer = csv.writer(f)
for row in myDict.iteritems():
writer.writerow(row)
对于python 3.X,将for循环行改为for row in myDict.items():
【讨论】:
【参考方案2】:做一个稍微短一点的版本:
rows = myDict.iteritems()
(或.items()
用于 Python 3。)
要获得;
分隔符,请将delimiter
传递给csv.reader
或csv.writer
。在这种情况下:
writer = csv.writer(f, delimiter=';')
【讨论】:
这将产生1;2;3\na;b;c
,而不是所需的输出。
谢谢!我花了很长时间才找到合适的答案,你帮我找到了我的解决方案:with open('manifesttest2.csv', "wb") as f: writer = csv.writer(f, delimiter=',') writer.writerow(amazonData)
@MichaelRomrell CSV 的读取器和写入器对象应默认使用,
作为分隔符(CSV 代表逗号分隔值)。不传参数能行吗?以上是关于Python一列的字符串分拆成三部分?的主要内容,如果未能解决你的问题,请参考以下文章