我有一个如下所示的数据框
Timestamp x_1 x_2 x_3 x_4 x_5 x_6
2018-01-31 22:30:00 2.023844 2.477428 1.023026 1.035433 0.530817 0.576471
2018-02-01 00:00:00 0.198297 -0.012164 0.103245 -0.101643 0.087468 -0.096665
2018-02-01 01:30:00 0.130721 0.042116 0.200378 0.166665 0.263809 0.250849
2018-02-01 03:00:00 0.621256 1.130577 0.907597 1.659503 1.161939 1.966579
2018-02-01 04:30:00 1.399033 2.438298 1.521268 2.570770 1.555749 2.583903
我想制作一个仅包含这样一列的新数据框
vals
2.023844
2.477428
1.023026
1.035433
0.530817
0.576471
0.198297
-0.012164
0.103245
-0.101643
0.087468
-0.096665
0.130721
0.042116
0.200378
0.166665
0.263809
0.250849
我必须获取每个行值(x_1至x_6)并将它们堆叠到一列中。
有没有一种简单的方法可以在熊猫中做到这一点,而不是搞乱数组和列表呢?
答案 0 :(得分:5)
如果第一列不是index
:
df = pd.DataFrame({'vals':df.iloc[:, 1:].values.reshape(-1)})
如果第一列是索引:
df = pd.DataFrame({'vals':df.values.reshape(-1)})
print (df)
vals
0 2.023844
1 2.477428
2 1.023026
3 1.035433
4 0.530817
5 0.576471
6 0.198297
7 -0.012164
8 0.103245
9 -0.101643
10 0.087468
11 -0.096665
12 0.130721
13 0.042116
14 0.200378
15 0.166665
16 0.263809
17 0.250849
18 0.621256
19 1.130577
20 0.907597
21 1.659503
22 1.161939
23 1.966579
24 1.399033
25 2.438298
26 1.521268
27 2.570770
28 1.555749
29 2.583903
答案 1 :(得分:2)
您可以使用setwd("E:/RTests")
library(leaflet)
library(maps)
mydata <- read.csv("data1.csv", check.names=FALSE, stringsAsFactors = FALSE, header = TRUE, fileEncoding="UTF-8-BOM")
mydata <- data.frame(mydata)
leaflet(data = mydata) %>% addTiles() %>%
addMarkers (~lon, ~lat, popup = ~as.character(emp), label = ~as.character(emp))
:
stack