How do I train a simple neural network with PyTorch on a pandas dataframe df
?
The column df["Target"]
is the target (e.g. labels) of the network. This doesn’t work:
import pandas as pd import torch.utils.data as data_utils target = pd.DataFrame(df['Target']) train = data_utils.TensorDataset(df, target) train_loader = data_utils.DataLoader(train, batch_size=10, shuffle=True)
Advertisement
Answer
I’m referring to the question in the title as you haven’t really specified anything else in the text, so just converting the DataFrame into a PyTorch tensor.
Without information about your data, I’m just taking float values as example targets here.
Convert Pandas dataframe to PyTorch tensor?
import pandas as pd import torch import random # creating dummy targets (float values) targets_data = [random.random() for i in range(10)] # creating DataFrame from targets_data targets_df = pd.DataFrame(data=targets_data) targets_df.columns = ['targets'] # creating tensor from targets_df torch_tensor = torch.tensor(targets_df['targets'].values) # printing out result print(torch_tensor)
Output:
tensor([ 0.5827, 0.5881, 0.1543, 0.6815, 0.9400, 0.8683, 0.4289, 0.5940, 0.6438, 0.7514], dtype=torch.float64)
Tested with Pytorch 0.4.0.
I hope this helps, if you have any further questions – just ask. :)