如何基于包含列名的串列創建資料框?
情況
我有一個存盤在名為 data 的變數中的列名串列:
- values_c1_114
- values_c1_84
- values_c1_37
- values_c1_126 ...
串列資料中總共有 552 個元素。
現在我想根據這個列名串列創建一個資料框。
我以為我可以使用以下方法訪問列名后面的值:
for element in data:
print(element)
但是這種編碼只回傳列名,而不回傳命名列后面的值。
結果使用 for 元素方法
可以訪問列名后面的值。
訪問單列值
解決方案:以下方法解決了我的問題。該columns包含應該被添加到資料框的列名的串列。
data = {k: eval(k) for k in columns}
df = pd.DataFrame(data)
print(df)
uj5u.com熱心網友回復:
看看這是否是您所需要的。如果我理解 OP 的問題,那么 OP 的關鍵問題是如何將變數名作為字串獲取,然后使用字串集作為dataframe列。
def namestr(obj, namespace):
return [name for name in namespace if namespace[name] is obj][0]
import pandas as pd
# to simulate the data you have
col1 = [1, 2, 3]
col2 = [4, 5, 6]
data = [col1, col2]
df = pd.DataFrame(data).T
df.columns = [namestr(i, globals()) for i in data]
print(df)
輸出:
col1 col2
0 1 4
1 2 5
2 3 6
或者反過來,您將列名作為串列中的字串,然后您可以執行以下操作:
columns = ['col1','col2']
col1 = [1, 2, 3]
col2 = [3, 4, 5]
data = { k: eval(k) for k in columns }
df = pd.DataFrame(data)
print(df)
輸出:
col1 col2
0 1 3
1 2 4
2 3 5
uj5u.com熱心網友回復:
你需要get. 嘗試例如:
variable <- 125
variable.name <- "variable"
get(variable.name)
# 125
因此,要從存盤在其中的變數名稱串列中構建資料框,您data可以執行以下操作
data.values <- lapply(data, get) # get a list of data values
names(data.values ) <- data # sets the names of each variable in the list
df <- data.frame(data.values)
uj5u.com熱心網友回復:
# importing library
import pandas as pd
# list of column names
data = ['values_c1_114','values_c1_84','values_c1_37','values_c1_126']
# data inside each columns
values_c1_114_list = [i for i in range(1,11)]
values_c1_84_list = [i for i in range(11,21)]
values_c1_37_list = [i for i in range(21,31)]
values_c1_126_list = [i for i in range(31,41)]
# creating dict
dict = {
'values_c1_114':values_c1_114_list,
'values_c1_84':values_c1_84_list,
'values_c1_37':values_c1_37_list,
'values_c1_126':values_c1_126_list
}
# creating dataframe
df = pd.DataFrame(dict)
#printing dataframe
print(df)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/351693.html
上一篇:為什么我的輸出沒有按預期回傳?
