CSV数据处理, 找出对应标签一致的数据

这是我的csv文件,现在想通过pandas 把 deviceID 一致的capability找出来,比如 最后一列,device ID 是R-1, 怎么把对应的capability找出来,并存放成字典及CSV

Capability name    Type    SimpleSkillID    Device    DeviceID
Moving    Moving    1    KUKA KR 270 R2700 ultra    R - 1
Moving    Moving    2    KUKA KR 270 R2900 K ultra    R - 2
Moving    Moving    3    ABB IRB 6700-150/3.20    R - 3
Moving    Moving    4    ABB IRB 6700-150/3.20 LeanID    R - 4
Moving    Moving    5    ABB IRB 6700-155/2.85    R - 5
Moving    Moving    6    Fanuc M-800iA/60    R - 6
Moving    Moving    7    Fanuc M-900iA/350    R - 7
Moving    Moving    8    Fanuc M-900iB/280    R - 8
Moving    Moving    9    Fanuc M-900iB/360    R - 9
Moving    Moving    10    Fanuc M-900iB/400L    R - 10
Moving    Moving    11    Fanuc M-900iB/700    R - 11
Moving    Moving    12    Fanuc M-2000iA/900L    R - 12
Moving    Moving    13    Fanuc M-2000iA/1700L    R - 13
Moving    Moving    14    Fanuc M-2000iC/210R    R - 14
ForceApplying    ForceApplying    15    KUKA KR 270 R2700 ultra    R - 1
ForceApplying    ForceApplying    16    KUKA KR 270 R2900 K ultra    R - 2
ForceApplying    ForceApplying    17    ABB IRB 6700-150/3.20    R - 3
ForceApplying    ForceApplying    18    ABB IRB 6700-150/3.20 LeanID    R - 4
ForceApplying    ForceApplying    19    ABB IRB 6700-155/2.85    R - 5
ForceApplying    ForceApplying    20    Fanuc M-800iA/60    R - 6
ForceApplying    ForceApplying    21    Fanuc M-900iA/350    R - 7
ForceApplying    ForceApplying    22    Fanuc M-900iB/280    R - 8
ForceApplying    ForceApplying    23    Fanuc M-900iB/360    R - 9
ForceApplying    ForceApplying    24    Fanuc M-900iB/400L    R - 10
ForceApplying    ForceApplying    25    Fanuc M-900iB/700    R - 11
ForceApplying    ForceApplying    26    Fanuc M-2000iA/900L    R - 12
ForceApplying    ForceApplying    27    Fanuc M-2000iA/1700L    R - 13
ForceApplying    ForceApplying    28    Fanuc M-2000iC/210R    R - 14
FingerGrasping    FingerGrasping    29    FingerGripper    E - 1
DrillBitFunction    DrillBitFunction    30    Drilling endeffector    E - 2
PressToolFunction    PressToolFunction    31    PressToolFunction    E - 3
ScrewingHeadFunction    ScrewingHeadFunction    32    Screwing Endeffector    E - 4
Fixturing    Fixturing    33    Milling Endeffector    E - 5
FingerGrasping    FingerGrasping    34    FingerGripper    E - 6
DrillBitFunction    DrillBitFunction    35    Drilling endeffector    E - 7
PressToolFunction    PressToolFunction    36    PressToolFunction    E - 8
ScrewingHeadFunction    ScrewingHeadFunction    37    Screwing Endeffector    E - 9
Fixturing    Fixturing    38    Milling Endeffector    E - 10
FingerGrasping    FingerGrasping    39    FingerGripper    E - 11
DrillBitFunction    DrillBitFunction    40    Drilling endeffector    E - 12
PressToolFunction    PressToolFunction    41    PressToolFunction    E - 13
ScrewingHeadFunction    ScrewingHeadFunction    42    Screwing Endeffector    E - 14
Fixturing    Fixturing    43    Milling Endeffector    E - 15
Releasing    Releasing    44    FingerGripper    E - 1
Press    Press    45    PressToolFunction    E - 3
SpinningTool    SpinningTool    46    Screwing Endeffector    E - 4
MillingToolFunction    MillingToolFunction    47    Milling Endeffector    E - 5
Releasing    Releasing    48    FingerGripper    E - 6
Press    Press    49    PressToolFunction    E - 8
SpinningTool    SpinningTool    50    Screwing Endeffector    E - 9
MillingToolFunction    MillingToolFunction    51    Milling Endeffector    E - 10
Releasing    Releasing    52    FingerGripper    E - 11
Press    Press    53    PressToolFunction    E - 13
SpinningTool    SpinningTool    54    Screwing Endeffector    E - 14
MillingToolFunction    MillingToolFunction    55    Milling Endeffector    E - 15
Spinning    Spinning    56    Milling Endeffector    E - 5
Spinning    Spinning    57    Milling Endeffector    E - 10
Spinning    Spinning    58    Milling Endeffector    E - 15
Metrology    Metrology    59    Leica AT901-MR    M - 1
Metrology    Metrology    60    Leica AT960-MR    M -2
Metrology    Metrology    61    T-Mac Inspect with/without touch trigger probe*    M - 3
Metrology    Metrology    62    T-Mac Frame    M - 4
Metrology    Metrology    63    T-Scan5    M - 5
Metrology    Metrology    64    Reflectors    M - 6
Metrology    Metrology    65    T-Probe    M - 7
Metrology    Metrology    66    Nikon MV331    M - 8
Metrology    Metrology    67    V-Stars Dual Camera system (model DynaMo 12)    M - 9
Metrology    Metrology    68    V-Stars probe    M - 10

您好,我看到每个DevuceID值对应有多个Capablty,请问需要的字典格式是{'R-1':[Moving,ForceApplying]}这样的格式吗?(以列表来存储多个字典的值)

功能已实现,如有帮助还请采纳,如有需求或继续交流。

import pandas as pd


df = pd.read_csv('文件路径')
DeviceID = set(df['DeviceID'].values.tolist())

# 1.存放成字典
dict1 = {}
for i in DeviceID:
    data = df.loc[df['DeviceID'] == i].Capability.values.tolist()
    dict1[i] =data

print(dict1)


# 2.存放成csv
a = list(dict1.keys())
b = list(dict1.values())
dict2 = {'DeviceID': a,
         'Capability': b}
df2 = pd.DataFrame(dict2)
df2.to_csv('DeviceID_Capability.csv')

import pandas as pd

path = input("请输入csv文件路径:")
df = pd.read_csv(path)
df = df[df["DeviceID"] == "R-1"]["Capability"]
dic = df.to_dict()
df.to_csv("1.csv", index=False)

def test():
    # 读取csv
    io = csv路径
    originalData = pd.read_excel(io)
    # 分组装载
    originalData = originalData[['Capability', 'DeviceID']]
    dict = {}
    for key, item in originalData.groupby(['DeviceID']):
        dict[key] = item['Capability'].tolist()
    print("success")

随便用了几个数据测试,结果如下

img