熊猫遍历行,将列值与列表中的字符串进行比较,从另一列返回值

时间:2019-03-09 18:31:52

标签: python pandas loops for-loop

当前,我正在尝试遍历数据帧,将字符串列表中的每个值与数据帧中特定列中的值进行比较。如果比较正确,则将同一行的不同列中的值附加到单独的列表中。

list_of_words = 'yes', 'no', 'maybe'
appendList = []
    for word in list_of_words: 
        for row in dataframe1.iterrows():
            if row['A'] == word:
                appendList.append(row['B'])
                return appendList

问题是我不确定如何将列表中的值与列值进行比较。总的来说,我对Pandas和python还是很陌生,但是到目前为止,便利的方法很棒。只是不确定如何工作才能返回我需要的东西。任何对文档的帮助或建议将不胜感激!

2 个答案:

答案 0 :(得分:0)

尝试以下操作:

list_of_words = ['yes', 'no', 'maybe']

appendList = dataframe1.B[dataframe1.A.isin(list_of_words)]

答案 1 :(得分:0)

在您的示例中,每个import {combineReducers, createStore, compose} from "redux"; import authenticationReducer from "../reducers/authenticationReducer"; const store = createStore(authenticationReducer, compose( window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() )); export default store; 是2元素元组,它使用整数索引:row是行号,row[0]pandas.Series。因此,使用表达式row[1]是TypeError。

row['A']

您可以使用pandas.Series.tolist()>>> row['A'] TypeError: tuple indices must be integers or slices, not str 转换为包含该行元素的普通python列表,然后进行比较:

pandas.Series

作为列表,for row in dataframe1.iterrows(): row_data = row[1].tolist() if row_data[0] == word: appendList.append(row_data[1]) 必须使用整数索引。这会使您的代码可读性降低。