Calling a single wandb.log(wandb.Table) logs multiple tables with slightly different contents

I am experiencing a weird behaivour of wandb.log(wandb.Table) and want to fix it. The following is an excerpt from my code:

print(df)
run_name = df['run_name'].iloc[0]
wandb.init(
    entity=args.entity,
    project=args.project,
    group=args.group,
    job_type=run_name,
    name=run_name,
)

wandb.log({"result": wandb.Table(dataframe=df)})

wandb.finish()

The resul of print(df) is as follows:

    run_name  total_mass        mx        my        mz       ixx       iyy       izz       ixy       iyz       izx  score  num_active_vxs
0  global_gt    5.582391 -0.002781 -0.008022  0.001889  0.193884  0.201152  0.198709  0.000203  0.000165  0.000203    0.0           19191

So, my expectation is one single table with the same content as the df appears on my dashboard. However, three tables with slightly different contents appear on the dashboard as shown below:
[First and second tables]


[Third table]

The expected table actually appears as the first table, but the second table does not have score element and the third table’s labels are followed by .1 and no values appear.

I do not have any ideas what is the cause of this behaviour. Do anybody experienced something similar, or have a solution to prevent wandb from putting the second and third tables on the dashboard?

Thanks in advance!

Hey Atsushi:
I used the code you shared but not seeing the same problem you have. I’m wondering if the problem is coming from your version of pandas or your code somewhere else accidentally logging the tables you are seeing.
Here’s the code I used with small modification of your code

import pandas as pd# Define the data as a dictionarydata = { 'run_name': ['global_gt'], 'total_mass': [5.582391], 'mx': [-0.002781], 'my': [-0.008022], 'mz': [0.001889], 'ixx': [0.193884], 'iyy': [0.201152], 'izz': [0.198709], 'ixy': [0.000203], 'iyz': [0.000165], 'izx': [0.000203], 'score': [0.0], 'num_active_vxs': [19191]}# Create the DataFramedf = pd.DataFrame(data)# Display the DataFrameprint(df)run_name = df['run_name'].iloc[0]wandb.init( entity="myentity", project="dfLog",)dropped_dataser = df.drop(columns=['run_name', 'score']).iloc[0]# dropped_dataser.index= tagged_columnsfor step in range(1, 5): wandb.log(data=dropped_dataser.to_dict(), step=step)to_log = wandb.Table(dataframe=df)wandb.log({"result": to_log}) # columns=list(columns), data=[data])})wandb.finish()

Best, W&B

Hi Atsushi,

We wanted to follow up with you regarding your support request as we have not heard back from you. Please let us know if we can be of further assistance or if your issue has been resolved.

Best,
Weights & Biases

Hi Atsushi, since we have not heard back from you we are going to close this request. If you would like to re-open the conversation, please let us know!