Python: Combining Two Rows with Pandas read_excel The 2019 Stack Overflow Developer Survey Results Are InExcel's SUMIFS implemented using PANDAS, the Python Data Analysis LibrarySQL GROUPING SETS in Python using PandasPython Pandas Apply with a Lambda FunctionSlow code pandas 8 million rowsDropping rows from a PANDAS dataframe where some of the columns have value 0Munging select rows in CSV files using PandasMatching rows between two dataframesGrouped by First Two Digits of Account_ID of ~240 million rows of Pandas DFSubtable timestamps in python pandasCalculating time deltas between rows in a Pandas dataframe
Can a flute soloist sit?
Ubuntu Server install with full GUI
Output the Arecibo Message
If I can cast sorceries at instant speed, can I use sorcery-speed activated abilities at instant speed?
Is Astrology considered scientific?
writing variables above the numbers in tikz picture
What information about me do stores get via my credit card?
If I score a critical hit on an 18 or higher, what are my chances of getting a critical hit if I roll 3d20?
Is it correct to say the Neural Networks are an alternative way of performing Maximum Likelihood Estimation? if not, why?
How to support a colleague who finds meetings extremely tiring?
Is bread bad for ducks?
Does HR tell a hiring manager about salary negotiations?
Why isn't the circumferential light around the M87 black hole's event horizon symmetric?
Is it ok to offer lower paid work as a trial period before negotiating for a full-time job?
Slides for 30 min~1 hr Skype tenure track application interview
How can I add encounters in the Lost Mine of Phandelver campaign without giving PCs too much XP?
What is preventing me from simply constructing a hash that's lower than the current target?
Button changing its text & action. Good or terrible?
Did Scotland spend $250,000 for the slogan "Welcome to Scotland"?
Worn-tile Scrabble
How do PCB vias affect signal quality?
Relationship between Gromov-Witten and Taubes' Gromov invariant
How to translate "being like"?
Is it okay to consider publishing in my first year of PhD?
Python: Combining Two Rows with Pandas read_excel
The 2019 Stack Overflow Developer Survey Results Are InExcel's SUMIFS implemented using PANDAS, the Python Data Analysis LibrarySQL GROUPING SETS in Python using PandasPython Pandas Apply with a Lambda FunctionSlow code pandas 8 million rowsDropping rows from a PANDAS dataframe where some of the columns have value 0Munging select rows in CSV files using PandasMatching rows between two dataframesGrouped by First Two Digits of Account_ID of ~240 million rows of Pandas DFSubtable timestamps in python pandasCalculating time deltas between rows in a Pandas dataframe
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
$begingroup$
I am reading an Excel file using Pandas and I feel like there has to be a better way to handle the way I create column names. This is something like the Excel file I'm reading:
1 2 # '1' is merged in the two cells above 'a'and 'b'
Date a b c d # likewise for '2'. As opposed to 'centered across selection'
1 1-Jan-19 100 200 300 400
2 1-Feb-19 101 201 301 401
3 1-Mar-19 102 202 302 402
I want my to merge the 'a','b','c',and'd' columns with the '1'and '2' above them, so I'm doing the following to get my headers the way that I want:
import pandas as pd
import json
xls = pd.ExcelFile(r'C:Path_toExcel_Pandas_Connector_Test.xls')
df = pd.read_excel(xls, 'Sheet1', header=[1]) # uses the abcd row as column names
# I only want the most recent day of data so I do the following
json_str = df[df.Date == df['Date'].max()].to_json(orient='records',date_format='iso')
dat_data = json.loads(json_str)[0]
def clean_json():
global dat_data
dat_data['1a'] = dat_data.pop('a')
dat_data['1b'] = dat_data.pop('b')
dat_data['2c'] = dat_data.pop('c')
dat_data['2d'] = dat_data.pop('d')
clean_json()
print(json.dumps(dat_data,indent=4))
My desired output is:
"Date": "2019-03-01T00:00:00.000Z",
"1a": 102,
"1b": 202,
"2c": 302,
"2d": 402
This works as written, but is there a Pandas built-in that I could have used to do the same thing instead of the clean_json function?
python excel pandas
New contributor
$endgroup$
add a comment |
$begingroup$
I am reading an Excel file using Pandas and I feel like there has to be a better way to handle the way I create column names. This is something like the Excel file I'm reading:
1 2 # '1' is merged in the two cells above 'a'and 'b'
Date a b c d # likewise for '2'. As opposed to 'centered across selection'
1 1-Jan-19 100 200 300 400
2 1-Feb-19 101 201 301 401
3 1-Mar-19 102 202 302 402
I want my to merge the 'a','b','c',and'd' columns with the '1'and '2' above them, so I'm doing the following to get my headers the way that I want:
import pandas as pd
import json
xls = pd.ExcelFile(r'C:Path_toExcel_Pandas_Connector_Test.xls')
df = pd.read_excel(xls, 'Sheet1', header=[1]) # uses the abcd row as column names
# I only want the most recent day of data so I do the following
json_str = df[df.Date == df['Date'].max()].to_json(orient='records',date_format='iso')
dat_data = json.loads(json_str)[0]
def clean_json():
global dat_data
dat_data['1a'] = dat_data.pop('a')
dat_data['1b'] = dat_data.pop('b')
dat_data['2c'] = dat_data.pop('c')
dat_data['2d'] = dat_data.pop('d')
clean_json()
print(json.dumps(dat_data,indent=4))
My desired output is:
"Date": "2019-03-01T00:00:00.000Z",
"1a": 102,
"1b": 202,
"2c": 302,
"2d": 402
This works as written, but is there a Pandas built-in that I could have used to do the same thing instead of the clean_json function?
python excel pandas
New contributor
$endgroup$
add a comment |
$begingroup$
I am reading an Excel file using Pandas and I feel like there has to be a better way to handle the way I create column names. This is something like the Excel file I'm reading:
1 2 # '1' is merged in the two cells above 'a'and 'b'
Date a b c d # likewise for '2'. As opposed to 'centered across selection'
1 1-Jan-19 100 200 300 400
2 1-Feb-19 101 201 301 401
3 1-Mar-19 102 202 302 402
I want my to merge the 'a','b','c',and'd' columns with the '1'and '2' above them, so I'm doing the following to get my headers the way that I want:
import pandas as pd
import json
xls = pd.ExcelFile(r'C:Path_toExcel_Pandas_Connector_Test.xls')
df = pd.read_excel(xls, 'Sheet1', header=[1]) # uses the abcd row as column names
# I only want the most recent day of data so I do the following
json_str = df[df.Date == df['Date'].max()].to_json(orient='records',date_format='iso')
dat_data = json.loads(json_str)[0]
def clean_json():
global dat_data
dat_data['1a'] = dat_data.pop('a')
dat_data['1b'] = dat_data.pop('b')
dat_data['2c'] = dat_data.pop('c')
dat_data['2d'] = dat_data.pop('d')
clean_json()
print(json.dumps(dat_data,indent=4))
My desired output is:
"Date": "2019-03-01T00:00:00.000Z",
"1a": 102,
"1b": 202,
"2c": 302,
"2d": 402
This works as written, but is there a Pandas built-in that I could have used to do the same thing instead of the clean_json function?
python excel pandas
New contributor
$endgroup$
I am reading an Excel file using Pandas and I feel like there has to be a better way to handle the way I create column names. This is something like the Excel file I'm reading:
1 2 # '1' is merged in the two cells above 'a'and 'b'
Date a b c d # likewise for '2'. As opposed to 'centered across selection'
1 1-Jan-19 100 200 300 400
2 1-Feb-19 101 201 301 401
3 1-Mar-19 102 202 302 402
I want my to merge the 'a','b','c',and'd' columns with the '1'and '2' above them, so I'm doing the following to get my headers the way that I want:
import pandas as pd
import json
xls = pd.ExcelFile(r'C:Path_toExcel_Pandas_Connector_Test.xls')
df = pd.read_excel(xls, 'Sheet1', header=[1]) # uses the abcd row as column names
# I only want the most recent day of data so I do the following
json_str = df[df.Date == df['Date'].max()].to_json(orient='records',date_format='iso')
dat_data = json.loads(json_str)[0]
def clean_json():
global dat_data
dat_data['1a'] = dat_data.pop('a')
dat_data['1b'] = dat_data.pop('b')
dat_data['2c'] = dat_data.pop('c')
dat_data['2d'] = dat_data.pop('d')
clean_json()
print(json.dumps(dat_data,indent=4))
My desired output is:
"Date": "2019-03-01T00:00:00.000Z",
"1a": 102,
"1b": 202,
"2c": 302,
"2d": 402
This works as written, but is there a Pandas built-in that I could have used to do the same thing instead of the clean_json function?
python excel pandas
python excel pandas
New contributor
New contributor
edited 24 mins ago
Virgilio
New contributor
asked 59 mins ago
VirgilioVirgilio
62
62
New contributor
New contributor
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
);
);
, "mathjax-editing");
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "196"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Virgilio is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f217294%2fpython-combining-two-rows-with-pandas-read-excel%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Virgilio is a new contributor. Be nice, and check out our Code of Conduct.
Virgilio is a new contributor. Be nice, and check out our Code of Conduct.
Virgilio is a new contributor. Be nice, and check out our Code of Conduct.
Virgilio is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f217294%2fpython-combining-two-rows-with-pandas-read-excel%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown