lserlohn
lserlohn

Reputation: 6206

how to create all zero dataframe in Python

I want to create a dataframe in Python with 24 columns (indicating 24 hours), which looks like this:

column name     0   1   2   3 ...   24

row 1           0   0   0   0        0
row 2           0   0   0   0        0
row 3           0   0   0   0        0

I would like to know how to initialize it? and in the future, I may add row 4, with all "0", how to do that? Thanks,

Upvotes: 15

Views: 32860

Answers (2)

user2589273
user2589273

Reputation: 2467

You can create an empty numpy array, convert it to a dataframe, and then add the header names.

 import numpy
 a = numpy.zeros(shape=(3,24))
 df = pd.DataFrame(a,columns=['col1','col2', etc..])

to set row names use

 df.set_index(['row1', 'row2', etc..])

if you must.

Upvotes: 12

Andy Hayden
Andy Hayden

Reputation: 375415

There's a trick here: when DataFrame (or Series) constructor is passed a scalar as the first argument this value is propogated:

In [11]: pd.DataFrame(0, index=np.arange(1, 4), columns=np.arange(24))
Out[11]:
   0   1   2   3   4   5   6   7   8   9  ...  14  15  16  17  18  19  20  21  22  23
1   0   0   0   0   0   0   0   0   0   0 ...   0   0   0   0   0   0   0   0   0   0
2   0   0   0   0   0   0   0   0   0   0 ...   0   0   0   0   0   0   0   0   0   0
3   0   0   0   0   0   0   0   0   0   0 ...   0   0   0   0   0   0   0   0   0   0

[3 rows x 24 columns]

Note: np.arange is numpy's answer to python's range.

Upvotes: 19

Related Questions