阅读时间约 6 分钟

Pandas

DataFrame 基础操作笔记

Posted by LuckyE on June 28, 2025
Python Pandas

Pandas

用Numpy创建数组,用Panda构建DataFrame,有两个参数datacolumns

# Create and populate a 5x2 NumPy array. 创建并填充一个 5x2 的 NumPy 数组
my_data = np.array([[0, 3], [10, 7], [20, 9], [30, 14], [40, 15]])

# Create a Python list that holds the names of the two columns.创建一个包含两列名称的 Python 列表
my_column_names = ['temperature', 'activity']

# Create a DataFrame.创建一个 DataFrame
**my_dataframe = pd.DataFrame(data=my_data, columns=my_column_names)**

# Print the entire DataFrame打印整个 DataFrame
print(my_dataframe)

image.png

添加列: 在原来列的基础上增加新列adjusted,值为activity列的值+2

# Create a new column named adjusted.
my_dataframe["adjusted"] = my_dataframe["activity"] + 2

# Print the entire DataFrame
print(my_dataframe)

image.png

获取元素:

print("Rows #0, #1, and #2:")
print(my_dataframe.head(3), '\n')

print("Row #2:")
print(my_dataframe.iloc[[2]], '\n')

print("Rows #1, #2, and #3:")
print(my_dataframe[1:4], '\n')

print("Column 'temperature':")
print(my_dataframe['temperature'])
#只输出温度列的第一行
print(df['temperature'][1])

image.png

image.png

读取数据集

创建一个人工数据集,并存储在CSV(逗号分隔值)文件 ../data/house_tiny.csv

import os

os.makedirs(os.path.join('..', 'data'), exist_ok=True)
data_file = os.path.join('..', 'data', 'house_tiny.csv')
with open(data_file, 'w') as f:
    f.write('NumRooms,Alley,Price\n')  # 列名
    f.write('NA,Pave,127500\n')  # 每行表示一个数据样本
    f.write('2,NA,106000\n')
    f.write('4,NA,178100\n')
    f.write('NA,NA,140000\n')

加载原始数据集

import pandas as pd

data = pd.read_csv(data_file)
print(data)

分离输入与输出

inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2] #  分离输入和输出,前两列为input,最后一列为output
inputs = inputs.fillna(inputs.mean()) # 用input的均值填充缺失值
print(inputs)

转换为张量格式

import torch
x = torch.tensor(inputs.to_numpy(dtype=float))
y = torch.tensor(outputs.to_numpy(dtype=float))


Testimonials

What readers say

先看读者反馈,再直接在当前页面继续讨论。公共留言需要 Waline 服务端;配置后访客只填昵称即可发布。

这类长文如果结构清楚,我会一路读到底。这里最好的地方是把概念、公式和代码示例放在同一篇里。

L
Lin 算法读者

数据库和工程文档的风格很实用,截图、SQL 和说明都能直接拿去复盘项目。

M
Mia 工程笔记党

强化学习相关文章密度很高,但排版如果更清楚,回看体验会更好。这个新版方向是对的。

R
Ryo 深夜学习者

我更喜欢能快速扫到标签、修改时间和文章重点的首页,现在这种卡片视图会比纯列表更容易选读。

C
Chen 知识整理控

代码块只要语言标识和层级做好,技术博客的专业感会立刻上来。

A
Ava 前端同行

评论区不用社交账号强绑定会更愿意留言,尤其是这种偏学习记录的网站。

N
Noah 匿名访客

Quick Identity

Pick a preset and leave a note

留言方式:先选择一个预设身份,再在下方输入评论。当前若显示“需要配置 Waline”,说明站点还缺少可写评论后端。

当前未选择预设身份

Live Discussion Waline 配置完成后,真实评论会加载在下方,移动端和主题切换会同步处理。
WALINE
Loading comments…