我遇到问题。我有一个数据框,如下所示:
test_index test-item test_value
Serial_Number
SN_0 1 A A-0.1
SN_0 1 B B-0.1
SN_0 2 A A-0.2
SN_0 2 B B-0.2
SN_1 3 A A-0.3
SN_1 3 B B-0.3
SN_1 4 A A-0.4
SN_1 4 B B-0.4
SN_3 5 A A-0.5
SN_3 5 B B-0.5
SN_3 6 A A-0.6
SN_3 6 B B-0.6
我想要一个如下所示的数据框:
Serial_Number test_index A B
SN_0 1 A-0.1 B-0.1
SN_0 2 A-0.2 B-0.2
SN_1 3 A-0.3 B-0.3
SN_1 4 A-0.4 B-0.4
SN_3 5 A-0.5 B-0.5
SN_3 6 A-0.6 B-0.6
我尝试使用dataframe.unstack()
,dataframe.reset_index()
,但失败了。
答案 0 :(得分:3)
您可以将DataFrame.set_index
与 var map;
var places;
var markers = [];
var iw_map;
var markers_map = new Array();
function initialize() {
geocoder = new google.maps.Geocoder();
var latlngCenter = new google.maps.LatLng(25.1999721, 66.8354386);
iw_map = new google.maps.InfoWindow();
var mapOptions = {
center: latlngCenter,
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
fetchPlaces();
fitMapToBounds_map();
}
function fetchPlaces(cityId = null, hubId = null, riderId = null) {
clearMarkers();
$.ajax({
url: '{{ route('get-markers') }}',
method:'POST',
data: {'city_id': cityId, hub_id: hubId, rider_id: riderId},
dataType: 'json',
cache: false,
success: function(data) {
// console.log(markers);
var markerz = data.markers;
// clearMarkers();
$.each(markerz, function (i, dt) {
var marker_icon = {url: dt.icon};
var position = new google.maps.LatLng(dt.lat,dt.lng);
var marker = new google.maps.Marker({
map: map,
position: position,
icon: marker_icon
});
// newcoordinate = new google.maps.LatLng(dt.lat,dt.lng);
google.maps.event.addListener(marker, "click", function(event) {
$.ajax({
url: '{{ route('get-marker-info') }}',
method:'POST',
data: JSON.parse(dt.params),
success: function(data) {
iw_map.setContent(data.infoBox);
iw_map.open(map, marker);
}
});
});
markers.push(marker.getPosition());
markers_map.push(marker);
});
// fitMapToBounds_map();
}
});
}
function fitMapToBounds_map() {
var bounds = new google.maps.LatLngBounds();
if (markers.length>0) {
for (var i=0; i<markers.length; i++) {
console.log(markers[i]);
bounds.extend(markers[i]);
}
map.fitBounds(bounds);
}
}
function clearMarkers() {
for (var i = 0; i < markers_map.length; i++) {
markers_map[i].setMap(null);
}
markers_map = [];
}
function loadScript_map() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.googleapis.com/maps/api/js?key=API_KEY&sensor=false&v=3&libraries=places&callback=initialize";
document.body.appendChild(script);
}
window.onload = loadScript_map;
setInterval(fetchPlaces, 5000);
参数结合使用,然后再结合使用unstack
。然后使用reset_index
和DataFrame.droplevel
清理格式。
注意-我相信append=True
是熊猫droplevel
或更高版本的方法,因此这将需要最新版本的熊猫。
0.24.0
[出]
(df.set_index(['test_index', 'test-item'], append=True)
.unstack(level=2)
.reset_index(col_level=1)
.droplevel(0, axis=1))