pHorseSpec
pHorseSpec

Reputation: 1274

Flattening Table From Excel into Csv with Pandas

I'm trying to take the data from a table in excel and put it into a csv in a single row. I have the data imported from excel into a dataframe using pandas, but now, I need to write this data to a csv in a single row. Is this possible to do, and if so, what would the syntax look like generally if I was taking a 50 row 3 column table and flattening it into 1 row 150 column csv table? My code so far is below:

import pandas as pd
df = pd.read_excel('filelocation.xlsx',
    sheetname=['pnl1 Data ','pnl2 Data','pnl3 Data','pnl4 Data'],
    skiprows=8, parse_cols="B:D", keep_default_na='FALSE', na_values=['NULL'], header=3)
DataFrame.to_csv("outputFile.csv" )

Another question that I would help me understand how to transform this data is, "Is there any way to select a piece of data from a specific row and column"?

Upvotes: 0

Views: 1209

Answers (2)

Bastiaan
Bastiaan

Reputation: 4672

You can simply set the line_terminator to nothing, like so:

df.to_csv('ouputfile.csv', line_terminator=',', index=False, header=False)

Or you can translate your dataframe into a numpy array and use the reshape function:

import numpy as np
import pandas as pd
arr = df.values.reshape(1,-1)

You can then use numpy.savetxt() to save as CSV.

Upvotes: 1

MaxU - stand with Ukraine
MaxU - stand with Ukraine

Reputation: 210812

try to do this:

df.to_csv("outputFile.csv", line_terminator=',')

Upvotes: 0

Related Questions