python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Pandas添加行至现有数据框

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

作者:qq^^614136809

本文主要介绍了Pandas添加行至现有数据框的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

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

解决方案

方法1:使用 .loc() 方法

可以使用 .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 ...

方法2:使用 pd.concat() 方法

也可以使用 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添加行至现有数据框内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文