I have a dataframe that contains a few rows. I want to access one by one row and create another data frame with specific columns. After that running some other logics but it failed before that.
Dataframe df_input_data
JavaScript
x
4
1
src_table_name src_column_name src_business_key_name
2
0 banking_fraud Acct_id Acct_id
3
1 sale_mast cust_code bill_no
4
Access row using iterrows():
JavaScript
1
3
1
for index, df_input_single in df_input_data.iterrows():
2
print("input", df_input_single)
3
Output:
JavaScript
1
4
1
input src_table_name banking_fraud
2
src_column_name Acct_id
3
src_business_key_name Acct_id
4
Creating another dataframe:
JavaScript
1
4
1
df_src_input = pd.DataFrame().assign(table_name=df_input_single['src_table_name'],
2
column_name=df_input_single['src_column_name'],
3
business_key_name=df_input_single['src_business_key_name'])
4
issue is df_src_input
is empty.
JavaScript
1
4
1
df_src_input Empty DataFrame
2
Columns: [table_name, column_name, business_key_name, select_column_names, where_condition, end_date, load_dt_tm, src_tgt_validation_type, schema_name, schema_table]
3
Index: []
4
Is there any other way to assign value to different dataframe.
Advertisement
Answer
if you print out
JavaScript
1
2
1
print('type', type(df_input_single['src_column_name']))
2
for example, it will be type <class 'str'>
, which is just a string value. To put data in a column, it must be a list
or a tuple
. Put each value in square brackets.
JavaScript
1
9
1
for index, df_input_single in df_input_data.iterrows():
2
#print('input', df_input_single)
3
#print('type', type(df_input_single['src_column_name']))
4
df_src_input = pd.DataFrame().assign(table_name=[df_input_single['src_table_name']],
5
column_name=[df_input_single['src_column_name']],
6
business_key_name=[df_input_single['src_business_key_name']])
7
8
print(df_src_input)
9