我试图找到一种方法来创建基于另一个DataFrame中的值的pandas系列。一个简化的例子是:
df_idx = pd.DataFrame([0, 2, 2, 3, 1, 3])
df_lookup = pd.DataFrame([10.0, 20.0, 30.0, 40.0])
我希望根据df_idx中的索引从df_lookup生成一系列新的pandas值,即:
df_target = pd.DataFrame([10.0, 30.0, 30.0, 40.0, 20.0, 40.0])
很明显,这样做时最好不要循环速度。
任何帮助都将不胜感激。
答案 0 :(得分:1)
reindex
的用途是
df_idx = pd.DataFrame([0, 2, 2, 3, 1, 3])
df_lookup = pd.DataFrame([10.0, 20.0, 30.0, 40.0])
df_lookup.reindex(df_idx[0])
输出:
0
0
0 10.0
2 30.0
2 30.0
3 40.0
1 20.0
3 40.0
答案 1 :(得分:-1)
这正是import pandas as pd
df = pd.DataFrame([10.0, 20.0, 30.0, 40.0])
idx_lst = pd.Series([0, 2, 2, 3, 1, 3])
res = df.iloc[idx_lst]
的用例:
Html.Hidden()
有关按位置编制索引的更多信息,请参见here。