我有一个字典,看起来像这样: di = {1: "A", 2: "B"}
我想将它应用于数据帧的"col1"列,类似于:
col1 col2
0 w a
1 1 2
2 2 NaN
Run Code Online (Sandbox Code Playgroud)
要得到:
col1 col2
0 w a
1 A 2
2 B NaN
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能做到最好?出于某种原因谷歌搜索与此相关的术语只显示了如何从dicts制作列的链接,反之亦然: - /
我有各种基因组位置的数据数据表.这些位置表示为3元组('染色体','srand',位置),我已经变成了多指数.我的目标是查找有关每个位置的各种信息并将其添加到表中(例如基因名称等)我可以使用pybedtools执行此操作.
df = pd.DataFrame(data={'A':range(1,8), 'B':range(1,8), 'C': range(1,8)},
index=pd.MultiIndex.from_tuples([('chrom1', '-', 1234), ('chrom1', '+', 5678),
('chrom1', '+', 9876), ('chrom2', '+', 13579), ('chrom2', '+', 8497), ('chrom2', '-', 98765),
('chrom2', '-', 76856)]))
df.index.rename(['chrom','strand','abs_pos'], inplace=True)
A B C
chrom strand abs_pos
chrom1 - 1234 1 1 1
+ 5678 2 2 2
9876 3 3 3
chrom2 + 13579 4 4 4
8497 5 5 5
- 98765 6 6 6
76856 7 7 7
Run Code Online (Sandbox Code Playgroud)
我的问题是向具有多索引的数据框添加列.这似乎很简单,没有多索引:pandas - 从字典向数据框添加新列
我有一个查找信息的字典,其中包含与多索引相对应的3元组键.如何将此数据添加为新列?
gene_d = {('chrom1', '-', 1234) …Run Code Online (Sandbox Code Playgroud) 我要去远一点这大约字典中的值映射到dataframes前面的问题。我有一个简单的数据框 df ,如:
U,id
111,01
112,02
112,03
113,04
113,05
113,06
114,07
Run Code Online (Sandbox Code Playgroud)
我想在新列上映射以下嵌套字典:
d = {112: {'en': 1, 'es': 2}, 113: {'zh': 1, 'ja': 1, 'es': 2}, 114: {'es': 1}, 111: {'ar': 2, 'en': 1}}
Run Code Online (Sandbox Code Playgroud)
仅考虑最常见的L值,即 112:'es'、113:'es'、114:'es'、111:'ar'。
在一个简单的字典案例中,我可以使用df['C'] = df['U'].map(d). 我怎么能只取以前的最高值呢?结果数据框将显示为:
U,id,C
111,01,ar
112,02,es
112,03,es
113,04,es
113,05,es
113,06,es
114,07,es
Run Code Online (Sandbox Code Playgroud) 我有一本字典,状态值为 c
stateC = {
"Washington" : 3,
"New York" : 5,
"Houston": 11,
}
Run Code Online (Sandbox Code Playgroud)
和一个数据框:
State b
Washington 09
New York 100
Houston 55
Run Code Online (Sandbox Code Playgroud)
我想根据字典的键值集成该列column c,还有一个column d具有值的列b/c
State b c d
Washington 09 3 3
New York 100 5 20
Houston 55 11 5
Run Code Online (Sandbox Code Playgroud)
如何在熊猫中做到这一点?
基于这个问题,从这个数据框开始:
import pandas as pd
data = {'key':[111, 112, 113, 114],'other_data':[1, 2, 5, 7]}
df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)
df
key other_data
0 111 1
1 112 2
2 113 5
3 114 7
Run Code Online (Sandbox Code Playgroud)
我想根据字典键和数据框中的一个指定列映射多个新列。
d = {
"111": {
"en": 4,
"es": 2
},
"112": {
"en": 1,
"es": 8
},
"113": {
"en": 0,
"es": 11
},
"114": {
"en": 2,
"es": 3
}
}
Run Code Online (Sandbox Code Playgroud)
预期的输出数据帧是
key,other_data,en,es
111,1,4,2
112,2,1,8
113,5,0,11
114,7,2,3
Run Code Online (Sandbox Code Playgroud)
数据帧很大,因此如果可能,我更愿意在一个循环或操作中执行此操作。
我尝试了map()和 的各种组合,apply()但无法使其正常工作。