ShanZhengYang
ShanZhengYang

Reputation: 17641

How to save a pandas dataframe such that there is no delimiter?

I have the following pandas dataframe:

import pandas as pd
df = pd.DataFrame(np.random.choice([0,1], (6,3)), columns=list('XYZ'))

   X  Y  Z
0  1  0  1
1  1  1  0
2  0  0  0
3  0  1  1
4  0  1  1
5  1  1  1

Let's say I take the transpose and wish to save it

df = df.T

   0  1  2  3  4  5
X  1  1  0  0  0  1
Y  0  1  0  1  1  1
Z  1  0  0  1  1  1

So, there three rows. I would like to save it in this format:

X  110001
Y  010111
Z  100111

I tried

df.to_csv("filename.txt", header=None, index=None, sep='')

However, this outputs an error:

TypeError: "delimiter" must be an 1-character string

Is it possible to save the dataframe in this manner, or is there some what to combine all columns into one? What is the most "pandas" solution?

Upvotes: 3

Views: 1192

Answers (2)

Nehal J Wani
Nehal J Wani

Reputation: 16619

If you do want to transpose, then you can do something like this:

In [126]: df.T.apply(lambda row: ''.join(map(str, row)), axis=1)
Out[126]: 
X    001111
Y    000000
Z    010010
dtype: object

Upvotes: 1

piRSquared
piRSquared

Reputation: 294488

Leave original df alone. Don't transpose.

df = pd.DataFrame(np.random.choice([0,1], (6,3)), columns=list('XYZ'))

df.astype(str).apply(''.join)

X    101100
Y    101001
Z    111110
dtype: object

Upvotes: 2

Related Questions