使用append()函数报错|Dataframe提取数据

通过遍历提取Dataframe一列中某些行的值:

img


print时没有问题,现在想将这一列值存到DataFrame中进一步处理,采用append函数出现以下问题:

img

img


请问如何改动?或者除了append函数以外可以用什么方法?

这个错误是因为,Python 不允许将字符串与其他数据类型进行直接连接,因为它们具有不同的数据类型。你之前定义的df1是一个字符串吗,建议在之前定义df1 = []

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 请看👉 :DataFrame某一列使用append追加数据为什么为空
  • 除此之外, 这篇博客: pandas使用append函数在dataframe上纵向合并数据实战:多个dataframe合并、合并series左右dataframe的一样、合并字典数据作为dataframe的行中的 #append纵向多个dataframe合并 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    result = df1.append(df2)

  • 以下回答来自chatgpt:

    可以尝试使用pandas的loc函数来实现遍历某一列并提取其中某些行的值的操作:

    import pandas as pd

    创建一个示例DataFrame

    df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': ['a', 'b', 'c', 'd', 'e'], 'C': [True, False, True, False, True]})

    使用loc函数筛选出满足条件的行

    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

    创建一个示例DataFrame

    df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': ['a', 'b', 'c', 'd', 'e'], 'C': [True, False, True, False, True]})

    新建一个空DataFrame

    new_df = pd.DataFrame(columns=['A', 'B'])

    使用iterrows()迭代器遍历每一行

    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']]来表示要添加的列的值。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^