【发布时间】:2022-02-03 17:11:27
【问题描述】:
我的源数据格式为 csv 文件,如下所示:
id,col1,col2
123,11|22|33||||||,val1|val3|val2
456,99||77|||88|||||||||6|,val4|val5|val6|val7
我需要添加一个新列(fnlsrc),它的值将基于 Col2 和 Col1 中的值,即如果 col1 有 9 个值(用管道分隔),而 col2 有 3 个值(用管道分隔),那么在fnlsrc 列我必须加载 9 个值(用管道分隔) 3 组 col2(val1|val3|val2|val1|val3|val2|val1|val3|val2)。请参考下面的输出,这将有助于轻松理解需求:
id,col1,col2,fnlsrc
123,11|22|33||||||,val1|val3|val2,val1|val3|val2|val1|val3|val2|val1|val3|val2
456,99||77|||88|||||||||6|,val4|val5|val6|val7,val4|val5|val6|val7|val4|val5|val6|val7|val4|val5|val6|val7|val4|val5|val6|val7
我尝试了以下代码,但它只添加了一组:
zipped = zip(df['col1'], df['col2'])
for s,t in zipped:
count = int((s.count('|') + 1)/(t.count('|') + 1))
for val in range(count):
df['fnlsrc'] = t
【问题讨论】:
标签: python-3.x pandas dataframe