-3

I have a dataset names 'df_list'. First three rows of my list is as below;

print(df_list[0]) = ['walter', ' extra', ' is', ' a', ' german', ' award-winning', ' aerobatic', ' pilot', '', ' chief', ' aircraft', ' designer', ' and', ' founder', ' of', ' extra', ' flugzeugbau', ' -LRB-', ' extra', ' aircraft', ' construction', ' -RRB-', '', ' a', ' manufacturer', ' of', ' aerobatic', ' aircraft', ' .']

print(df_list[1]) = ['NN', ' JJ', ' VBZ', ' DT', ' JJ', ' JJ', ' JJ', ' NN', ' ', ' NN', ' NN', ' NN', ' CC', ' NN', ' IN', ' JJ', ' NN', ' -LRB-', ' JJ', ' NN', ' NN', ' -RRB-', ' ', ' DT', ' NN', ' IN', ' JJ', ' NN', ' .']

print(df_list[2]) = ['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O']

What am I trying to have as an output is;

df_list[:7] = [('walter', 'NN', 'O'),
               (' extra', ' JJ', 'O'),
               (' is', ' VBZ', 'O'),
               (' a', ' DT', 'O'),
               (' german', ' JJ', 'O'),
               (' award-winning', ' JJ', 'O'),
               (' aerobatic', ' JJ', 'O')]

I tried below code that I found here Transpose list of lists but It didn't work and gave me below result;

list(map(list, zip(*df_list)))

df_list[0] = ['walter', 'NN', 'O', 'aaron', 'NN', 'O', 'majda', 'NN', 'O', 'linda', 'NN', 'O', 'craig', 'NN', 'O', 'joseph', 'NN', 'O', 'henrik', 'NN', 'O', 'tony', 'JJ', 'O', 'john', 'NN', 'O', 'larisa', 'NN', 'O', 'jon', 'NN', 'O', 'christian', 'JJ', 'O', 'hussain', 'NNP', 'O', 'italo', 'NN', 'O', 'mausami', 'NN', 'O', 'james', 'NNS', 'O', 'roger', 'NN', 'O', 'herbert', 'NN', 'O', 'arthur', 'NN', 'O', 'emanuelis', 'NN', 'O', 'piet', 'NN', 'O', 'ward', 'VB', 'O', 'eddio', 'NN', 'O', 'carlene', 'NN', 'O', 'presley', 'NN', 'O', 'james', 'NNS', 'O', 'george', 'NN', 'O', 'llewellyn', 'NN', 'O', 'kia', 'NN', 'O', 'james', 'NNS', 'O', 'james', 'NNS', 'O', 'timmy', 'NN', 'O', 'john', 'NN', 'O', 'heddy', 'NN', 'O', 'vester', 'NN', 'O', 'jordon', 'NN', 'O', 'walter', 'NN', 'O', 'john', 'NN', 'O', 'robert', 'NN', 'O', 'ma', 'NN', 'O', 'mark', 'NN', 'O', 'jole', 'NN', 'O', 'samu', 'FW', 'O', 'thambiah', 'NN', 'O', 'cliff', 'NN', 'O', 'harold', 'NN', 'O', 'william', 'NN', 'O', 'sheila', 'NN', 'O', 'tanya', 'NN', 'O', 'ryan', 'NN', 'O']

To be brief;

my_df = [['walter',' extra',' is'],['NN',' JJ',' VBZ'],['O','O','O']]

my_df_output = [('walter',' NN','O'),(' extra',' JJ','O'),(' is',' JJ','O')]

Appreciate any support possible. Thank you in advance.

1 Answers1

2
>>> import itertools
>>> import pprint
>>> p = list(map(list, itertools.zip_longest(*df_list)))
>>> pprint.pprint(p[:7])
[['walter', 'NN', 'O'],
 [' extra', ' JJ', 'O'],
 [' is', ' VBZ', 'O'],
 [' a', ' DT', 'O'],
 [' german', ' JJ', 'O'],
 [' award-winning', ' JJ', 'O'],
 [' aerobatic', ' JJ', 'O']]
timgeb
  • 76,762
  • 20
  • 123
  • 145