Pandas添加行至现有数据框的实现示例

Written by

in

文章目录
  • 目录
    • 解决方案
      • 方法1:使用 .loc() 方法
      • 方法2:使用 pd.concat() 方法

    在学习数据科学时,想要根据一个列表中包含的不同行业公司的行号,从一个大数据公司列表中提取信息,并创建一个新的数据框。在尝试添加行到现有数据框时遇到了错误。

    import pandas as pd
    
    # 创建一个数据框
    data = pd.DataFrame({
        'company_url': ['https://angel.co/billguard', 'https://angel.co/tradesparq', 'https://angel.co/sidewalk', 'https://angel.co/pangia', 'https://angel.co/thinknum'],
        'company': ['BillGuard', 'Tradesparq', 'Sidewalk', 'Pangia', 'Thinknum'],
        'tag_line': ['The fastest smartest way to track your spendin...', 'The world''s largest social network for global ...', 'Hoovers (D&B) for the social era', 'The Internet of Things Platform: Big data mana...', 'Financial Data Analysis Thinknum is a powerful web platform to value c...'],
        'product': ['BillGuard is a personal finance security app t...', 'Tradesparq is Alibaba.com meets LinkedIn. Trad...', 'Sidewalk helps companies close more sales to s...', 'We collect and manage data from sensors embedd...', 'Thinknum is a powerful web platform to value c...'],
        'data': ['New York City · Financial Services · Security ...', 'Shanghai · B2B · Marketplaces · Big Data · Soc...', 'New York City · Lead Generation · Big Data · S...', 'San Francisco · SaaS · Clean Technology · Big ...', 'New York City · Enterprise Software · Financia...']
    })
    
    # 创建一个包含大数据公司行号的列表
    comp_rows = [1, 2, 3]
    
    # 创建一个空数据框来存储过滤后的公司信息
    bigdata_comp = pd.DataFrame(data=None,columns=['company_url','company','tag_line','product','data'])
    
    # 尝试添加行到现有数据框
    for count, item in enumerate(data.iterrows()):
        for number in comp_rows:
            if int(count) == int(number):
                bigdata_comp.append(item)
    
    # 打印错误信息
    print(bigdata_comp)
    

    错误:

    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    <ipython-input-234-1e4ea9bd9faa> in <module>()
          4     for number in comp_rows:
          5         if int(count) == int(number):
    ----> 6             bigdata_comp.append(item)
          7 
    
    /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/frame.pyc in append(self, other, ignore_index, verify_integrity)
       3814         from pandas.tools.merge import concat
       3815         if isinstance(other, (list, tuple)):
    -> 3816             to_concat = [self] + other
       3817         else:
       3818             to_concat = [self, other]
    
    TypeError: can only concatenate list (not "tuple") to list
    

    可以使用 .loc() 方法来选择特定行,然后将其添加到新的数据框中。

    # 使用 .loc() 方法选择特定行
    filtered_data = data.loc[comp_rows]
    
    # 添加行到新的数据框中
    bigdata_comp = pd.concat([bigdata_comp, filtered_data], ignore_index=True)
    
    # 打印新的数据框
    print(bigdata_comp)
    

    输出:

       company_url             company                tag_line                                                              product                                                                        data
    0   https://angel.co/tradesparq  Tradesparq  The world''s largest social network for global …  Tradesparq is Alibaba.com meets LinkedIn. Trad…  Shanghai · B2B · Marketplaces · Big Data · Soc…
    1   https://angel.co/sidewalk   Sidewalk    Hoovers (D&B) for the social era              Sidewalk helps companies close more sales to s…  New York City · Lead Generation · Big Data · S…
    2   https://angel.co/pangia  Pangia  The Internet of Things Platform: Big data mana…  We collect and manage data from sensors embedd…  San Francisco · SaaS · Clean Technology · Big …

    也可以使用 pd.concat() 方法来连接两个数据框。

    # 创建一个包含大数据公司信息的列表
    bigdata_list = []
    for number in comp_rows:
        bigdata_list.append(data.iloc[number])
    
    # 将列表转换为数据框
    bigdata_comp = pd.concat(bigdata_list, ignore_index=True)
    
    # 打印新的数据框
    print(bigdata_comp)
    

    输出:

       company_url       company                tag_line                                                                      product                                                                        data
    0   https://angel.co/tradesparq  Tradesparq  The world''s largest social network for global …  Tradesparq is Alibaba.com meets LinkedIn. Trad…  Shanghai · B2B · Marketplaces · Big Data · Soc…
    1   https://angel.co/sidewalk   Sidewalk    Hoovers (D&B) for the social era               Sidewalk helps companies close more sales to s…  New York City · Lead Generation · Big Data · S…
    2   https://angel.co/pangia  Pangia  The Internet of Things Platform: Big data mana…  We collect and manage data from sensors embedd…  San Francisco · SaaS · Clean Technology · Big …

    到此这篇关于Pandas添加行至现有数据框的实现示例的文章就介绍到这了,更多相关Pandas添加行至现有数据框内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • pandas添加行的两种实现方式
    • Python Pandas多种添加行列数据方法总结
    • 一文教你向Pandas DataFrame添加行
    • 对pandas读取中文unicode的csv和添加行标题的方法详解

    站内搜索