Pandas:DataFrame数据的更改、插入新增的列和行

一、更改DataFrame的某些值

1、更改DataFrame中的数据,原理是将这部分数据提取出来,重新赋值为新的数据。

2、需要注意的是,数据更改直接针对DataFrame原数据更改,操作无法撤销,如果做出更改,需要对更改条件做确认或对数据进行备份。

代码:

import pandas as pd
df1 = pd.DataFrame([[‘Snow‘,‘M‘,22],[‘Tyrion‘,‘M‘,32],[‘Sansa‘,‘F‘,18],[‘Arya‘,‘F‘,14]], columns=[‘name‘,‘gender‘,‘age‘])

print("--------更换单个值----------")
# loc和iloc 可以更换单行、单列、多行、多列的值
df1.loc[0,‘age‘]=25      # 思路:先用loc找到要更改的值,再用赋值(=)的方法实现更换值
df1.iloc[0,2]=25         # iloc:用索引位置来查找

# at 、iat只能更换单个值
df1.at[0,‘age‘]=25      # iat 用来取某个单值,参数只能用数字索引
df1.iat[0,2]=25         # at 用来取某个单值,参数只能用index和columns索引名称
print(df1)

结果图:

 

二、插入新增列、行

代码:

import pandas as pd

df1 = pd.DataFrame([[‘Snow‘,‘M‘,22],[‘Tyrion‘,‘M‘,32],[‘Sansa‘,‘F‘,18],[‘Arya‘,‘F‘,14]], columns=[‘name‘,‘gender‘,‘age‘])

print("----------在最后新增一列---------------")
print("-------案例1----------")
# 在数据框最后加上score一列,元素值分别为:80,98,67,90
df1[‘score‘]=[80,98,67,90]   # 增加列的元素个数要跟原数据列的个数一样
print(df1)

print("-------案例2----------")
print("---------在指定位置新增列:用insert()--------")
# 在gender后面加一列城市
# 在具体某个位置插入一列可以用insert的方法
# 语法格式:列表.insert(index, obj)
# index --->对象 obj 需要插入的索引位置。
# obj ---> 要插入列表中的对象(列名)

col_name=df1.columns.tolist()                   # 将数据框的列名全部提取出来存放在列表里
print(col_name)

col_name.insert(2,‘city‘)                      # 在列索引为2的位置插入一列,列名为:city,刚插入时不会有值,整列都是NaN
df1=df1.reindex(columns=col_name)              # DataFrame.reindex() 对原行/列索引重新构建索引值

df1[‘city‘]=[‘北京‘,‘山西‘,‘湖北‘,‘澳门‘]   # 给city列赋值
print(df1)

print("----------新增行---------------")
# 重要!!先创建一个DataFrame,用来增加进数据框的最后一行
new=pd.DataFrame({‘name‘:‘lisa‘,
                  ‘gender‘:‘F‘,
                  ‘city‘:‘北京‘,
                  ‘age‘:19,
                  ‘score‘:100},
                 index=[1])   # 自定义索引为:1 ,这里也可以不设置index
print(new)

print("-------在原数据框df1最后一行新增一行,用append方法------------")
df1=df1.append(new,ignore_index=True)   # ignore_index=True,表示不按原来的索引,从0开始自动递增
print(df1)

结果图:

原文地址:https://www.cnblogs.com/wodexk/p/10316793.html

时间: 2024-10-07 23:16:32

Pandas:DataFrame数据的更改、插入新增的列和行的相关文章

pandas DataFrame数据筛选和切片

DataFrame数据筛选--loc,iloc,ix,at,iat 条件筛选 单条件筛选 选取col1列的取值大于n的记录: data[data['col1']>n] 筛选col1列的取值大于n的记录,但是显示col2,col3列的值: data[['col2','col3']][data['col1']>n] 选择特定行:使用isin函数根据特定值筛选记录.筛选col1值等于list中元素的记录: data[data.col1.isin(list)] 多条件筛选 可以使用&(并)与|

pandas dataframe 数据框

数据框是一个二维数据结构,类似于SQL中的表格.借助字典,数组,列表和序列等可以构造数据框. 1.字典创建数据框,则列的名称为key的名称: d = {'one':pd.Series([1,2,3],index= ['a','b','c']), 'two':pd.Series([1,2,3,4],index=['a','b','c','d']) } print(pd.DataFrame(d)) 2.列表创建数据框: d = pd.DataFrame([[1,2,3,4],[5,6,7,8],[1

Pandas DataFrame 数据选取和过滤

This would allow chaining operations like: pd.read_csv('imdb.txt') .sort(columns='year') .filter(lambda x: x['year']>1990) # <---this is missing in Pandas .to_csv('filtered.csv') For current alternatives see: http://stackoverflow.com/questions/11869

Pandas dataframe数据写入文件和数据库

Pandas是Python下一个开源数据分析的库,它提供的数据结构DataFrame极大的简化了数据分析过程中一些繁琐操作,DataFrame是一张多维的表,大家可以把它想象成一张Excel表单或者Sql表.之前这篇文章已经介绍了从各种数据源将原始数据载入到dataframe中,这篇文件介绍怎么将处理好的dataframe中的数据写入到文件和数据库中. 首先我们通过二维ndarray创建一个简单的DataFrame: 1 2 3 4 5 6 7 8 import pandas as pd imp

pandas dataframe数据提取的方法

import numpy as np from pandas import DataFrame import pandas as pd df=DataFrame(np.arange(12).reshape((3,4)),index=['one','two','thr'],columns=list('abcd')) df['a']#取a列 df[['a','b']]#取a.b列 #ix可以用数字索引,也可以用index和column索引 df.ix[0]#取第0行 df.ix[0:1]#取第0行

将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy

将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy [python] view plain copy print? import pandas as pd from sqlalchemy import create_engine ##将数据写入mysql的数据库,但需要先通过sqlalchemy.create_engine建立连接,且字符编码设置为utf8,否则有些latin字符不能处理 yconnect = create_engine('mysql+mysql

【SQL Server】sql server更改了数据表的字段/新增数据表的字段 无法保存

sql server更改了数据表的字段/新增数据表的字段  无法保存 解决方法:进入 工具-->选项-->Designers-->表设计器和数据库设计器-->取消勾选   即可

用PyQt5来即时显示pandas Dataframe的数据,附qdarkstyle黑夜主题样式(美美哒的黑夜主题)

import sys from qdarkstyle import load_stylesheet_pyqt5 from PyQt5.QtWidgets import QApplication, QTableView from PyQt5.QtCore import QAbstractTableModel, Qt class QtTable(QAbstractTableModel): def __init__(self, data): QAbstractTableModel.__init__(s

Pandas中DataFrame数据合并、连接(concat、merge、join)之join

pandas.DataFrame.join 自己弄了很久,一看官网.感觉自己宛如智障.不要脸了,直接抄 DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False) Join columns with other DataFrame either on index or on a key column. Efficiently Join multiple DataFrame objects by in