我試圖將一個pandas DataFrame列收集到一個鍵值對中,並將它列爲python中的一行。如果我們把下面的數據幀爲例,我想從這裏去:如何將DataFrame列收集到鍵值對中作爲Python中的行
import pandas as pd
from collections import OrderedDict
df = pd.DataFrame({'value_2016': [200],
'value_2017': [300],
'value_2018': [float('NaN')]})
print(df)
value_2016 value_2017 value_2018
0 200 300 NaN
到:
df_result = pd.DataFrame(OrderedDict({'year': [2016, 2017],
'value': [200, 300]}))
print(df_result)
year value
0 2016 200
1 2017 300
如果你是R中熟悉的等價會是這樣的:
require("plyr"); require("dplyr"); require(tidyr)
df <- data.frame(value_2016 = 200,
value_2017 = 300,
value_2018 = NA)
df %>%
gather(year, value, value_2016:value_2018) %>%
mutate(year = gsub(x = .$year, replacement = "", "value_")) %>%
na.exclude
year value
1 2016 200
2 2017 300
任何幫助將非常酷!
確定這看起來不錯..謝謝 – Codutie