[英]How can I create a single Dataframe out of my python code that generates a dictionary for each iteration of a for loop?
[英]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.