簡體   English   中英

如何根據我的特定 dataframe 創建字典?

[英]How to create a dictionary out of my specific dataframe?

我有一個帶有列名的 dataframe df:

names
phil/andy    
allen
john/william/chris
john

我想把它變成一種“字典”(熊貓數據框),每個名字都有唯一的隨機數:

name     value
phil      1
andy      2
allen     3
john      4
william   5
chris     6

怎么做? dataframe 是樣本,所以我需要一個 function 來對非常大的 dataframe 做同樣的事情

給你 go。

import numpy as np
import pandas as pd

# Original pd.DataFrame

d = {'phil': [1],
     'phil/andy': [2],
     'allen': [3],
     'john/william/chris': [4],
     'john': [5]
     }

df = pd.DataFrame(data=d)

# Append all names to a list

names = []

for col in df.columns:
    
    names = names + col.split("/")

# Remove duplicated names from the list

names = [i for n, i in enumerate(names) if i not in names[:n]]

# Create DF

df = pd.DataFrame(
    # Random numbers
    np.random.choice(
        len(names), # Length
        size = len(names), # Shape
        replace = False # Unique random numbers
        ),
    # Index names
    index = names,
    # Column names
    columns = ['Rand value']
    )


如果你想創建一個字典而不是 pd.DataFrame 你也可以在最后應用d = df.T.to_dict() 如果您想要數字0,1,2,3,...,n而不是隨機數,您可以將np.random.choice()替換為range()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM