0

I have a dataframe which look like this:

df = pandas.dataframe()
df.set_value(1,9,"AA1")
...
df.set_value(3,14,"FF3")
print(df)

             9            10           11           13           14
1           AA1          BB1          CC1          DD1          FF1
2           AA2          BB2          CC2          DD2          FF2
3           AA3          BB3          CC3          DD3          FF3

For an other program I need to output it with columns 1 to 8 and 12, which are empty.

Is there a way to do without df.set_value(1,1,None)?

1 Answer 1

1

There are no columns befor column 9, so impossible display it.

print (df.columns)
Int64Index([9, 10, 11, 12, 13, 14], dtype='int64')

So need add them - e.g. by reindex_axis:

df = df.reindex_axis(range(df.columns.max() + 1), axis=1)
print (df)
   0   1   2   3   4   5   6   7   8    9    10   11  12   13   14
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN  AA1  BB1  CC1 NaN  DD1  FF1
2 NaN NaN NaN NaN NaN NaN NaN NaN NaN  AA2  BB2  CC2 NaN  DD2  FF2
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN  AA3  BB3  CC3 NaN  DD3  FF3

df = df.reindex_axis(range(1, df.columns.max() + 1), axis=1)
print (df)
   1   2   3   4   5   6   7   8    9    10   11  12   13   14
1 NaN NaN NaN NaN NaN NaN NaN NaN  AA1  BB1  CC1 NaN  DD1  FF1
2 NaN NaN NaN NaN NaN NaN NaN NaN  AA2  BB2  CC2 NaN  DD2  FF2
3 NaN NaN NaN NaN NaN NaN NaN NaN  AA3  BB3  CC3 NaN  DD3  FF3
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.