从相同datafram的行中的值在dataframe中创建一个新列

2024-09-30 18:13:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个新列,该列的值位于同一数据帧的行中,以便Year列中cell的值与标题匹配,并将行单元格中的值放在value下。请参阅所附图片。有什么建议吗?你知道吗

Input and Output Dataframes


Tags: 数据标题value请参阅cellyear建议附图片
2条回答

如果您知道索引中的所有年份也在您的列中,可以尝试以下操作:

import pandas as pd
import numpy as np

df = pd.DataFrame(
    {2008: 5*[1], 2009: 5*[2], 2010: 5*[3], 2011: 5*[4], 2012: 5*[5]},
    index=[2008, 2011, 2010, 2009, 2012]
)

np.diag(df.loc[df.index, df.index])

结果:

array([1, 4, 3, 2, 5])

您可能需要找到lookup的函数

pd.DataFrame({'Year':df.Year,'Value':df.set_index('Year').lookup(df.Year,df.Year)})

相关问题 更多 >