Pandas 如何使用一列的值访问另一列中的值?

Pandas 如何使用一列的值访问另一列中的值?,pandas,Pandas,如何使用一列的值访问另一列的值 import numpy impot pandas numpy.random.seed(123) df = pandas.DataFrame((numpy.random.normal(0, 1, 10)), columns=[['Value']]) df['bleh'] = df.index.to_series().apply(lambda x: numpy.random.randint(0, x + 1, 1)[0]) 那么,如何访问每行的“bleh”值呢

如何使用一列的值访问另一列的值

import numpy
impot pandas

numpy.random.seed(123)
df = pandas.DataFrame((numpy.random.normal(0, 1, 10)), columns=[['Value']])
df['bleh'] = df.index.to_series().apply(lambda x: numpy.random.randint(0, x + 1, 1)[0])
那么,如何访问每行的“bleh”值呢

df.Value.iloc[df['bleh']]
编辑: 感谢@ScottBoston。我的DF构造函数有一层
[]
太多了。 正确答案是:

numpy.random.seed(123)
df = pandas.DataFrame((numpy.random.normal(0, 1, 10)), columns=['Value'])
df['bleh'] = df.index.to_series().apply(lambda x: numpy.random.randint(0, x + 1, 1)[0])
df['idx_int'] = range(df.shape[0])
df['haa']     = df['idx_int']  - df.bleh.values
df['newcol']  = df.Value.iloc[df['haa'].values].values 
尝试:

输出:

[-1.0856306033005612,
 0.9973454465835858,
 0.28297849805199204,
 -1.506294713918092,
 -0.5786002519685364,
 1.651436537097151,
 -2.426679243393074,
 -0.42891262885617726,
 1.265936258705534,
 -0.8667404022651017]
您的数据帧构造函数仍然需要修复


您正在寻找:

df.set_index('bleh')
输出:

         Value
bleh          
0    -1.085631
1     0.997345
2     0.282978
1    -1.506295
4    -0.578600
0     1.651437
0    -2.426679
4    -0.428913
1     1.265936
7    -0.866740
如果是这样,您的dataframe构造函数中有一组额外的[]

np.random.seed(123)
df = pd.DataFrame((np.random.normal(0, 1, 10)), columns=['Value'])
df['bleh'] = df.index.to_series().apply(lambda x: np.random.randint(0, x + 1, 1)[0])
columns
dataframe中的paramater接受的是一个列表,而不是一个列表。

non(很抱歉这个问题让人困惑):我想要一个
系列
,它的第一个条目是
[df.Value.iloc[df['bleh'].iloc[s].values],用于范围(df.shape[0])中的s
,但只包含数值(不是列名)。两者都不是(很抱歉回答这个令人困惑的问题):我想要一个列,其中包含df['bleh'].values]中s的条目
[df.Value.iloc[s].values[0][0],但只包含数值(而不是列名)。
np.random.seed(123)
df = pd.DataFrame((np.random.normal(0, 1, 10)), columns=['Value'])
df['bleh'] = df.index.to_series().apply(lambda x: np.random.randint(0, x + 1, 1)[0])