如何基於包含列名的列表創建數據框?

賓特

如何基於包含列名的列表創建數據框?

情況

我有一個存儲在名為 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)
Gaz Zhao

看看這是否是您所需要的。如果我理解 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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

創建數據框時創建基於另一列的列

如何從元組列表創建數據框?

如何通過基於行值創建新變量來重塑數據框以進行分析

創建數據框列表的數據框

創建一個基於 R 中數據框中另一列的列

基於唯一值和時間戳在 R 中創建新數據框

如何從包含嵌套字典的字典創建 Pandas 數據框?

使用列表和數據框從 a 創建字典

從不同大小的列表創建數據框

如何使用兩個不等長的列表創建數據框

如何從 3 個元素元組列表創建 Pandas 數據框?

如何從字典創建不同的數據框

如何使用行名稱創建數據框

如何根據 Pyspark 中的列名列表檢查數據框是否包含列?

關於從前一個數據框創建這個新數據框的問題

R基於列數據創建箱線圖

從字典創建數據框

如何基於列表合併2個數據框

基於輸入的子集數據並在 Rshiny 上使用此數據創建圖

基於 R 中具有不同數據框輸入的多個條件創建列類型

基於 nd-array 和 1d-array 的 if-else 條件創建 pandas 數據框的 Pythonic 方法

如何對此數據集進行排序以創建合適的數據框

創建一個帶有列的數據框,該列將包含一列的唯一值和另一個數據框的唯一列名

如何根據條件創建基於另外兩個 DataFrame 的 0/1 DataFrame?

如何根據值創建具有相同結構的n個數據框?

根據兩列的最大值在數據框中創建一個帶有列名的新列

自動為數據框列表創建新列 - R

使用列表中的隨機值在 Pyspark 中創建數據框

如何基於字符串數組創建對像類型/接口