【问题标题】:how to get the list of all values in a row if particular value found in column如果在列中找到特定值,如何获取行中所有值的列表
【发布时间】:2020-08-19 10:30:50
【问题描述】:

如果在列中找到值,我想获取行的值

例如 这是我的df

    column1 column11    column16    column17    column19
3   X   VALUE   IP               Ethernet IP    VLAN
5   A   2420    42.842.52.100   42.842.52.100   M
6   B   2423    09.82.02.2049   09.82.02.2049   N
7   Y   2421    42.82.52.1356   42.82.52.1356   O
8   D   2396    542.842.49.113  542.842.49.113  P
…   …   ... ... ... ...
…   …   ... ... ... ...
930 F   2126    42.842.52.100   42.842.52.100   S
931 G   2154    09.82.02.2049   09.82.02.2049   T
932 H   2190    42.82.52.1356   42.82.52.1356   U
933 I   2334    542.842.49.113  542.842.49.113  V
934 J   2224    42.82.207.241   42.82.207.241   W

首先我不想考虑第 1 行,即(column1 column11 column16 column17 column19)。如何删除它,它已在我的 Excel 工作表中修复,我无法删除它,我想用 row2 命名我的列,即;(X VALUE IP Ethernet IP VLAN)

这里是主要查询,假设我在 column1 中找到了 J,那么我想要列表中该列的所有值,即;

['2224',    '42.82.207.241',    '42.82.207.241',    'W']

这是我想做的事情

df3 =pd.read_excel("abcd.xlsx",sheet_name="Values")
df_b = list(df3[df3['column1'].values=="J"])
print(df_b)

它给了我

['column1', 'column11', 'column14', 'column16', 'column17']

但是当我这样做时:

df_b = df3[df3['column1'].values=="J"]
print(df_b)

它给了我

     column1 column11       column14      column16      column17
 934    J     2224        42.82.207.241 42.82.207.241      W

请建议我可以在这里为 j 做些什么,并为其他人做同样的事情。:

['2224'    ,   '42.82.207.241'  , '42.82.207.241'   ,   'W']

【问题讨论】:

    标签: python-3.x pandas numpy dataframe


    【解决方案1】:

    如果column1中有唯一值过滤后得到Series,则可以转换为list

    cols = ['column11', 'column14', 'column16', 'column17']
    df_b = df3.loc[df3['column1'] == "J", cols].tolist()
    

    另一个方法应该被column1选择转换为index

    df_b = df3.set_index('column1').loc["J"].tolist()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多