簡體   English   中英

我如何基於另一個列python獲取列的值

[英]How do i get values of a column based on another column python

我有一個要求唯一值的數據框,我想根據這些唯一值獲得另一列。

嘗試獲取all_names中的顏色

raw_data={'Class':['A1','B1','C1','D1','A1'],
          'Name':['Harry','Christabel','Mel','Chris','Cherry'],
          'Color':['Red','Blue','Pink','Red','Red']}

df = pd.DataFrame(raw_data)
all_names = df['Name'][df['Class']=='A1'].unique()
all_colour=df.loc[df['Colour'].isin(all_names)]

我已經嘗試了上面的代碼,但是我正在嘗試獲取Harry和Cherry的紅色和紅色。

1如果您只是想要哈利和櫻桃的顏色,請執行以下操作:

Color_Harry_Cherry=list(df.loc[[0,4],'Color'])
print(Color_Harry_Cherry)

出:

['Red', 'Red']

2如果要獲取列表all_names的顏色,則可以執行以下操作而不會出現錯誤:

import numpy as np
import pandas as pd
raw_data={'Class':['A1','B1','C1','D1','A1'],'Name':['Harry','Christabel','Mel','Chris','Cherry'],'Color':['Red','Blue','Pink','Red','Red']}
df = pd.DataFrame(raw_data)
all_names = df['Name'][df['Class']=='A1'].unique()
print(all_names)
i=0
colors = []
while i<len(df['Color']):
    if df.loc[df.index.values[i],'Name'] in all_names:
        colors = colors + list(df.loc[[df.index.values[i]],'Color'])
    i+=1
print(colors)

出:

['Harry' 'Cherry']
['Red', 'Red']

3為什么您的代碼不起作用?

注意, df['Color'].isin(all_names)返回:

0    False
1    False
2    False
3    False
4    False
Name: Color, dtype: bool

loc方法需要將索引和要從DataFrame中選擇的值所在的列作為參數。 因此,您收到了一個錯誤。

看起來您的數據集格式不正確。 它應該看起來像這樣:

raw_data={
    'Class':['A1','B1','C1','D1','A1'],
    'Name':['Harry','Christabel','Mel','Chris','Cherry'],
    'Color':['Red','Blue','Pink','Red','Red']
}

之后,您可以繼續對列進行子設置。 檢查此代碼:

import pandas as pd

# Your dataset should look like this
raw_data={
    'Class':['A1','B1','C1','D1','A1'],
    'Name':['Harry','Christabel','Mel','Chris','Cherry'],
    'Color':['Red','Blue','Pink','Red','Red']
}

# Assign dataset into pandas dataframe
df = pd.DataFrame(raw_data)

# Get Harry's color
harry = df.loc[df["Name"] == "Harry", "Color"].unique()[0]

# Get Cherry's color
cherry = df.loc[df["Name"] == "Cherry", "Color"].unique()[0]

# Print them
print("Harry's color is %s" % harry)
print("Cherry's color is %s" % cherry)

那應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM