我想從我存盤在變數中的特定字母開始,將一個字母(按字母順序)附加到我的資料框中。
當前資料框:
col1
data1
data2
data3
要分配的變數(可以是字母表中的任何字母)
variable ='D'
所需的輸出作為資料幀
col1 | col2
data1 | E
data2 | F
data3 | G
我可以使用下面的代碼分配 ABCDE 等。對于我的情況,我必須從一個特定的字母中分配它(例如,如果字母B然后下一個應該是C等
from string import ascii_uppercase as ABC
d = dict(zip(ABC[:len(df)], df.col1))
期望輸出為字典
output = {'E': 'data1', 'F': 'data2', 'G': 'data3'}
有人可以指導我上面的內容嗎?
uj5u.com熱心網友回復:
使用ord創建ascii碼起點
start_ascii = ord(variable) 1
映射使用chr到生成的ord值
df['col2'] = list(map(chr, range(start_ascii, start_ascii df.shape[0])))
資料框變成
col1 col2
0 data1 E
1 data2 F
2 data3 G
轉換為字典
dict(zip(df.col2, df.col1))
輸出
{'E': 'data1', 'F': 'data2', 'G': 'data3'}
uj5u.com熱心網友回復:
您可以使用RangeIndex:
df["new"] = (df.index ord(variable) 1).map(chr)
print (df.set_index("new")["col1"].to_dict())
{'E': 'data1', 'F': 'data2', 'G': 'data3'}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/365734.html
上一篇:按字典串列中的鍵對值進行分組
下一篇:如何矢量化這個熊貓操作?
