Reputation: 107
I want to populate a pandas dataframe with a integer called delay time. When I do the below, I am getting an error as below also.
train_df = pd.DataFrame("Train_Number", "Start_Station", "Stop_Station", "Delay_Time")
for i in range(1,25):
train_df = train_df.append(i, "Dublin", "Belfast", 0)
Error: TypeError: data type 'Delay_Time' not understood
I have tried changing 0 to int(0), np.zeros(), but neither worked.
What am I doing wrong?
Upvotes: 1
Views: 31
Reputation: 862406
For performance reason create list of tuples first and then call DataFrame constructor:
L = []
for i in range(1,25):
L.append((i, "Dublin", "Belfast", 0))
Or use list comprehension:
L = [(i, "Dublin", "Belfast", 0) for i in range(1,25)]
cols = ["Train_Number", "Start_Station", "Stop_Station", "Delay_Time"]
train_df = pd.DataFrame(L, columns=cols)
print (train_df)
Train_Number Start_Station Stop_Station Delay_Time
0 1 Dublin Belfast 0
1 2 Dublin Belfast 0
2 3 Dublin Belfast 0
3 4 Dublin Belfast 0
4 5 Dublin Belfast 0
5 6 Dublin Belfast 0
6 7 Dublin Belfast 0
7 8 Dublin Belfast 0
8 9 Dublin Belfast 0
9 10 Dublin Belfast 0
10 11 Dublin Belfast 0
11 12 Dublin Belfast 0
12 13 Dublin Belfast 0
13 14 Dublin Belfast 0
14 15 Dublin Belfast 0
15 16 Dublin Belfast 0
16 17 Dublin Belfast 0
17 18 Dublin Belfast 0
18 19 Dublin Belfast 0
19 20 Dublin Belfast 0
20 21 Dublin Belfast 0
21 22 Dublin Belfast 0
22 23 Dublin Belfast 0
23 24 Dublin Belfast 0
Upvotes: 1