2

I have 3 lists in python. Using these 3 lists I want to create a pandas data frame. I have done like below.

import pandas as pd
import numpy as np

mysql_list = ['id', 'date', 'name']
oracle_list = ['id', 'date-1', 'name_1']
sql_list = ['id', 'date', 'name-1']

mysql_name='test_123'
oracle_name='test-123'
sql_name='test123'


pd_df = pd.DataFrame(columns = ['mysql_name', 'mysql_cols', 'oracle_name', 'oracle_cols', 'sql_name', 'sql_cols'])
pd_df = pd.DataFrame(index = [np.arange(len(mysql_list))],columns = ['mysql_name', 'mysql_cols', 'oracle_name', 'oracle_cols', 'sql_name', 'sql_cols'])

pd_df.loc[:,'mysql_name'] = mysql_name
pd_df.loc[:,'mysql_cols'] = mysql_list

pd_df.loc[:,'sql_name'] = sql_name
pd_df.loc[:,'sql_cols'] = sql_list

pd_df.loc[:,'oracle_name'] = oracle_name
pd_df.loc[:,'oracle_cols'] = oracle_list

pd_df

  mysql_name mysql_cols oracle_name oracle_cols sql_name sql_cols
0   test_123         id    test-123          id  test123       id
1   test_123       date    test-123      date-1  test123     date
2   test_123       name    test-123      name_1  test123   name-1

I am able to achieve my requirement. Is there a simple way we can do this with less number of lines of code.

I believe there is but I don't know how I can do it

2 Answers 2

3
In [16]: (pd.DataFrame({'mysql_cols':mysql_list, 'oracle_cols':oracle_list,
    ...:                        'sql_cols':sql_list})
    ...:            .assign(mysql_name=mysql_name,oracle_name=oracle_name, sql_name=sql_name)
    ...:            .sort_index(axis=1))
    ...:
Out[16]:
  mysql_cols mysql_name oracle_cols oracle_name sql_cols sql_name
0         id   test_123          id    test-123       id  test123
1       date   test_123      date-1    test-123     date  test123
2       name   test_123      name_1    test-123   name-1  test123
Sign up to request clarification or add additional context in comments.

Comments

3

You can using dict with assign

d={'mysql_name':'test_123','oracle_name':'test-123','sql_name':'test123'}
pd.DataFrame({'mysql_cols':mysql_list, 'oracle_cols':oracle_list,
                       'sql_cols':sql_list}).assign(**d)

Out[312]: 
  mysql_cols oracle_cols sql_cols mysql_name oracle_name sql_name
0         id          id       id   test_123    test-123  test123
1       date      date-1     date   test_123    test-123  test123
2       name      name_1   name-1   test_123    test-123  test123

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.