i use pandas for python to generate a xlsx file with two other file. i take the first one as a template, and file the column with the second file. i wrote:
df_complete['<CLIENT>']='<CLIENT>'
df_complete['Code du client *']="C-"
df_complete['Raison sociale *']=df_client['Nom_Entreprise'].str.upper()
df_complete['Libellé régime de TVA (Soumis à la TVA, Franchise de TVA) *']='Soumis à la TVA'
df_complete['Gestion des factures récapitulatives (non, oui) * [non,oui]']='oui'
df_complete['Code de la devise *']='EUR'
but when i open my xlsx file the column '' and 'Code du client *' are empty, the other Columns are OK... I don't know why it doesn't run for the two first column...
CodePudding user response:
The code is assigning constant values to columns, not setting the values of a new row. The syntax :
df_complete['<CLIENT>']='<CLIENT>'
Tries to set the value to all items in the Series. If that series is empty (as is the case here) nothing is set.
On the other hand, df_complete['Raison sociale *']=df_client['Nom_Entreprise'].str.upper()
copies data from another dataframe that does contain some data.
To demonstrate :
import pandas as pd
df_complete=pd.DataFrame()
df_complete['<CLIENT>']='<CLIENT>'
df_complete['Code du client *']="C-"
df_complete
Produces
Empty DataFrame
Columns: [<CLIENT>, Code du client *]
Index: []
Adding another series with values, only fills that series:
df_complete=pd.DataFrame()
df_complete['<CLIENT>']='<CLIENT>'
df_complete['Code du client *']="C-"
df_complete['Raison sociale *']=[1,2,3]
>>> df_complete
<CLIENT> Code du client * Raison sociale *
0 NaN NaN 1
1 NaN NaN 2
2 NaN NaN 3
At the very least, rows should be added before setting series values:
df_complete=pd.DataFrame()
df_complete['Raison sociale *']=[1,2,3]
df_complete['<CLIENT>']='<CLIENT>'
df_complete['Code du client *']="C-"
>>> df_complete
<CLIENT> Code du client * Raison sociale *
0 <CLIENT> C- 1
1 <CLIENT> C- 2
2 <CLIENT> C- 3
CodePudding user response:
Did you try to use pd.concat
or pd.join
? It's seems to me that this could work for your problem