簡體   English   中英

對於列中的每個唯一元素,創建一個具有其對應特征的圖形

[英]For each unique element in a column, create a plot with it's corresponding features

我認為我的問題確實很簡單,必須有一種非常簡單的方法來解決我仍然不知道的熊貓問題。 我真的不想創建新的數據框。 我已經花了一些時間試圖自己弄清楚,但無法取得結果。

一個簡單的示例可能是解釋我的目標的更好方法:在C列上有四個不同的唯一值,如下面的代碼所示。我想要的是創建一個for循環,其中每個唯一值(Value_1, Value_2,Value_3,Value_4),繪制一個圖形,其中“ x”是該值在列A中的對應特征,而“ y”是對應的列B。

import pandas as pd
data = {'Column A': [100,200,300,400,500,500,500,300],
    'Column B': [1,1,2,2,3,3,0,2], 
    'Column C': ["Value_1", "Value_2", "Value_3", "Value_4", "Value_1", "Value_2", "Value_3", "Value_4"]}
df = pd.DataFrame(data, columns=['Column A','Column B', 'Column C'])

對於這種情況,我希望得到一個結果,因為在這種情況下,我將收到四個圖,每個圖代表C列的值之一以及A和B列的對應特征。

我嘗試了以下方法:

for d in df.groupby(df['Column C']):
df.plot.scatter(x='Column A', y='Column B', marker='.')
plt.show()

但是,這樣做時,由於沒有在C列中實現的過濾功能,因此我無法真正實現所需的功能,因為此圖中繪制了所有點。

希望我能簡潔明了。 祝您一切順利,並感謝您的關注。

我想您可以使用以下方法遍歷唯一值:

for val in df['Column C'].unique():
    sdf = df.loc[df['Column C']==val]
    sdf.plot(x='Column A', y='Column B', label='C = {}'.format(val))

暫無
暫無

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

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