繁体   English   中英

使用基于索引列表的系列值填充 dataframe

[英]Filling a dataframe with values from a Series based on a list of index

我需要将值从 pandas 系列(val)传递到索引(索引)处的 dataframe 列('column_a')。 我怎样才能做到这一点?

import pandas as pd
import numpy as np

df_test = pd.DataFrame(index=np.arange(4000), columns=np.arange(1))
df_test.columns = ['column_a']
val = pd.Series([0.267, 0.331, 0.486, 0.224, 0.334])
indices = pd.Series([2, 7, 9, 12, 70])

让我们通过设置 val 的索引来使用 pandas 内在数据 alignment 然后将该 pd.Series 分配给 dataframe 列。

df_test.columns = ['column_a']
val = pd.Series([0.267, 0.331, 0.486, 0.224, 0.334])
indices = pd.Series([2, 7, 9, 12, 70])

df_test['column_a'] = val.set_axis(indices)

print(df_test[df_test['column_a'].notna()])

Output(仅打印 df_test 中不为空的值):

    column_a
2      0.267
7      0.331
9      0.486
12     0.224
70     0.334

使用 pandas 的loc方法:

df_test.loc[indices.to_numpy(), 'column_a']=val.to_numpy()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM