pandas 中 DataFrame无法正确添加新数据

问题描述

  • 这几天在做数据整合的时候, 需要对一个已经读到的DataFrame 与另外一个 DataFrame 进行整合.
  • 然而使用 + 号却没有办法正确整合. 为了解决这个问题也找了不少资料

问题解决

  • 使用 DataFrame.append()方法.

    df = pd.readcsv(filename)
    new_df = pd.readcsv(another_filename)
    df = df.append(new_df, ignore_index = True)

  • 细心的同学可能会发现, 有一个 ignore_index 参数. 那么这个参数名字的用途很明显, 就是用来忽略pandas 读取数据的时候前面带有的索引号的.
    • 例如, df 有 20行, new_df 有20行. 如果不指定这个参数, 那么我们将会看到0 -19, 0 - 19 的两个索引.而不是 0-39 的 两个索引.

总结

  • 话说 pandas 的坑还是有点多..我用+号始终搞不定 两个DataFrame 的合并(这里合并不是指的数据上的merge). 不知道这里为什么没办法直接用最简单的方式搞定.
Pandas,你可以使用多种方式向DataFrame添加数据。以下是几种常见的方法: 1. **追加行(Append Rows)**: - `loc`或`iloc`:通过指定行号或标签,可以直接添加一行数据。例如: ```python new_data = {'A': 'Value1', 'B': 42} df.loc[len(df)] = new_data ``` - `insert`:在指定位置插入一行或多行,比如: ```python df.insert(0, 'New Column', 'New Value') ``` 2. **追加列(Add Columns)**: - 直接赋值给列名: ```python df['New Column'] = 'New Data' ``` - 利用字典或Series构造列: ```python df['New Column'] = df['Old Column'].apply(lambda x: x * 2) ``` 3. **堆叠或合并(Stacking or Merging)**: - 如果你想基于某个键将行转换为列,可以使用`stack`或`melt`函数: ```python df_stacked = df.pivot(index='Index', columns='Column', values='Value') ``` - 合并多个DataFrame可以根据键进行内连接、外连接等操作,如`merge`或`concat`: 4. **追加整个DataFrame**: - 如果有另一个完整的DataFrame,可以使用`concat`函数: ```python new_df = pd.DataFrame({'New': ['New1', 'New2'], 'Data': [1, 2]}) df = pd.concat([df, new_df]) ``` 5. **使用`DataFrame.from_records`或`.from_dict`从其他结构导入数据**: - 这些方法允许你从列表、字典或其他数据结构轻松地构建DataFrame: ```python data_list = [{'Name': 'Alice', 'Age': 25}, {'Name': 'Bob', 'Age': 30}] df = pd.DataFrame(data_list) ``` 记得每次添加数据后检查结果,确保它们已经被正确添加到了预期的位置,并且数据类型与现有数据一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值