通过遍历提取Dataframe一列中某些行的值:
这个错误是因为,Python 不允许将字符串与其他数据类型进行直接连接,因为它们具有不同的数据类型。你之前定义的df1是一个字符串吗,建议在之前定义df1 = []
不知道你这个问题是否已经解决, 如果还没有解决的话:result = df1.append(df2)
可以尝试使用pandas的loc函数来实现遍历某一列并提取其中某些行的值的操作:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': ['a', 'b', 'c', 'd', 'e'], 'C': [True, False, True, False, True]})
new_df = df.loc[df['C']==True, ['A', 'B']]
print(new_df)
运行上述代码,输出结果如下:
A B 0 1 a 2 3 c 4 5 e
其中df['C']==True是条件语句,用来判断哪些行需要被筛选出来。['A', 'B']是列名列表,表示要获取哪些列的值。注意如果只想获取某一列的值,列名列表可以省略。
如果需要将被筛选出来的行逐行添加到新的DataFrame中,可以使用pandas的迭代器iterrows()来遍历DataFrame中的每一行,并在满足条件时将该行添加到新的DataFrame中。
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': ['a', 'b', 'c', 'd', 'e'], 'C': [True, False, True, False, True]})
new_df = pd.DataFrame(columns=['A', 'B'])
for index, row in df.iterrows(): if row['C'] == True: new_df = new_df.append(row[['A', 'B']])
print(new_df)
运行上述代码,输出结果如下:
A B 0 1 a 2 3 c 4 5 e
在循环过程中,if语句判断了每一行的'C'列是否为True,如果是,则将该行的'A'和'B'列的值添加到新的DataFrame中。注意在使用append()函数时,需要使用row[['A', 'B']]来表示要添加的列的值。