Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取表中匹配列名的对应行值_Python_Pandas_Dataframe - Fatal编程技术网

Python 获取表中匹配列名的对应行值

Python 获取表中匹配列名的对应行值,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个包含许多列和一行的数据框架,每次出现特定值时都需要获取列标题。例如: Date c1 col2 col3 col4 col5 rl6 d7 01/01/2016 00:00 37.04 36.57 35.77 37.56 36.79 35.90 38.15 。。。给定一个列名为['col2','col3','col4','col5']的数组 我需要将这些名称与标题名称进行比较,只要列名与数组

我有一个包含许多列和一行的数据框架,每次出现特定值时都需要获取列标题。例如:

Date               c1    col2    col3    col4    col5    rl6    d7 
01/01/2016 00:00   37.04   36.57   35.77   37.56   36.79   35.90   38.15 
。。。给定一个列名为
['col2','col3','col4','col5']
的数组

我需要将这些名称与标题名称进行比较,只要列名与数组匹配,就可以在一行中获得相应的值。例如,
col2
应该给出值
36.57

试试这个:

# Make a Series containing the columns you want to retrieve
s = pd.Series(['col1','col2','col3','col4','col5'])

# Get the list of valid column names
# Notice that you don't have a `col1` column in your sample input
valid = s[s.isin(df.columns)]

df[valid]
结果

    col2   col3   col4    col5
0  36.57  35.77  37.56  36z.79
试试这个:

# Make a Series containing the columns you want to retrieve
s = pd.Series(['col1','col2','col3','col4','col5'])

# Get the list of valid column names
# Notice that you don't have a `col1` column in your sample input
valid = s[s.isin(df.columns)]

df[valid]
结果

    col2   col3   col4    col5
0  36.57  35.77  37.56  36z.79

假设您的数据帧是

df

你有这个阵列

l = ['col2', 'col3', 'col4', 'col5']
然后您将通过以下方式获得标签的相应值:

[df[label].values[0] for label in l if label in df]
您的示例的输出将是

[36.57, 35.77, 37.56, 36.79]

希望它能帮助您。

假设您的数据帧是

df

你有这个阵列

l = ['col2', 'col3', 'col4', 'col5']
然后您将通过以下方式获得标签的相应值:

[df[label].values[0] for label in l if label in df]
您的示例的输出将是

[36.57, 35.77, 37.56, 36.79]

希望它能帮助您。

这只是一个直接的查找,带有
df.loc[:,列有列有列的列名].values
。您想要什么输出:熊猫系列、列表、numpy数组。。。?追加
.values
将数据帧转换为numpy数组。没错。我也做了同样的事。在发布了这个问题之后,我提出了一个想法:你倒过来说:你不想每次出现一个特定的值时都得到列标题;您希望获得给定列名输入列表的值数组。这只是使用
df.loc[:,list_of_col_names].值的直接查找。您想要什么输出:熊猫系列、列表、numpy数组。。。?追加
.values
将数据帧转换为numpy数组。没错。我也做了同样的事。在发布了这个问题之后,我提出了一个想法:你倒过来说:你不想每次出现一个特定的值时都得到列标题;您希望获得给定列名输入列表的值数组。