八.数据清洗

目录

八.数据清洗

1.清洗空值

删一行或列

检测某一列是否为空值.

自定义空值类型

移除某一类带空值的行

使用某个值进行填充

2.清洗格式有误

日期格式有误

错误数据

3.清洗重复值(drop_)duplicates


1.清洗空值

import pandas as pd
import numpy as np
data = pd.DataFrame({'姓名':['kun','鸡哥','华哥','凡哥'],'年龄':[23,5,3,42],'爱好':['篮球','街舞','王者','吃'],'地址':[np.nan,'广东','厦门',np.nan]})
data
---------------
    姓名  年龄  爱好   地址
0  kun  23  篮球  NaN
1   鸡哥   5  街舞   广东
2   华哥   3  王者   厦门
3   凡哥  42   吃  NaN

删一行或列

如果我们要删除包含空字段的行,可以使用 dropna() 方法,语法格式如下:

data.dropna(axis="index", how="any",inplace=False)

#删除空字段的 行.
data.dropna(axis='index',how='any',inplace=True)
print(data)
-----------
   姓名  年龄  爱好  地址
1  鸡哥   5  街舞  广东
2  华哥   3  王者  厦门

检测某一列是否为空值.

#检测某一列是否为空值.
data['地址']
print(data['地址'].isnull())
----------------
0     True
1    False
2    False
3     True
Name: 地址, dtype: bool

自定义空值类型

#自定义空值类型.--->NaN
miss_value = ['--',18]
data2 = pd.read_csv('student.csv',na_values=miss_value)
# data2.dropna(axis='index',how='any',inplace=True)
print(data2)

移除某一类带空值的行

#移除某一类带空值的  行.
data2.dropna(subset=['age'],inplace=True)
print(data2)

使用某个值进行填充

  • 替换空单元格的常用方法是计算列的均值、中位数值或众数 mean()、median(),mode()

#填充全部.
# data2.fillna(0,inplace=True)
# data2
​
#填充某列.
data2['age'].fillna(data2['age'].mean(),inplace=True)
data2

2.清洗格式有误

日期格式有误

--自动修改.

data = {
  "Date": ['2020/12/01', '2020/12/02' , '20201226'],
  "salary": [5000, 4000, 45000]
}
​
df_data = pd.DataFrame(data, index = ["day1", "day2", "day3"])
print(df_data)
​
df_data["Date"] = pd.to_datetime(df_data["Date"])
df_data
-----------
         Date  salary
day1 2020-12-01    5000
day2 2020-12-02    4000
day3 2020-12-26   45000

错误数据

# 单个修改
df_data.loc["day3","salary"] = 4500
df_data
# 批量修改
for data in df_data.index:
    if df_data.loc[data,"salary"] > 10000:
       df_data.loc[data,"salary"] =  df_data.loc[data,"salary"] / 10
df_data

3.清洗重复值(drop_)duplicates

df_data = pd.DataFrame({
    "name":["苹果","华为","苹果","小米"],
    "price":[1000,1200,1000,800]
})
# df_data
​
# 检测重复值
df_data.duplicated()
​
# 删除重复值
df_data.drop_duplicates(inplace=True)
df_data

<think>嗯,用户的问题是关于LaTeX中插入算法流程图后标题间距过大的解决方案。首先,我需要回忆一下LaTeX标题间距的相关设置。记得LaTeX标题间距通常由\abovecaptionskip和\belowcaptionskip控制,特别是对于浮动体比如算法或图片的标题。用户提到的引用[2]中提到可以通过设置\setlength{\abovecaptionskip}{-0.04cm}来调整标题上方的间距,这可能是一个关键点。 然后,用户提到的是算法流程图的标题间距过大,可能需要针对特定的浮动体类型进行调整。例如,算法通常使用algorithm包,而图片可能使用figure环境。所以可能需要检查是否适用于algorithm环境。另外,引用[3]中的\newenvironment可能也相关,但用户的问题更关注于间距而非字体大小。 接下来,我需要考虑用户可能的操作步骤。用户可能在使用algorithm或algorithmic包来插入算法流程图,而标题与算法之间的间距过大。解决方案可能包括调整\abovecaptionskip,但需要确认是否针对特定浮动体类型进行设置,比如在algorithm环境中使用\captionsetup。 另外,可能需要使用caption包来更精细地控制标题间距,比如通过\captionsetup[algorithm]{aboveskip=...}来专门设置算法标题的上方间距。这比全局调整更安全,避免影响其他浮动体的标题间距。 此外,用户可能没有正确加载必要的包,比如algorithm、algpseudocode或caption包,需要提醒用户检查导言区是否有这些包的引用。例如,使用\usepackage{algorithm}和\usepackage{caption}。 还要考虑到是否在算法环境中使用了特定的标题格式,比如\caption{}命令的位置是否正确,或者是否有额外的空白行导致间距增加。可能需要检查代码结构,确保在算法环境内部正确使用\caption,并且没有不必要的空行。 最后,可能需要综合使用上述方法:调整全局的标题间距,或者针对算法环境单独设置,同时利用caption包的功能。例如,在导言区添加: \usepackage{caption} \captionsetup[algorithm]{aboveskip=2pt, belowskip=2pt} 这样就能专门调整算法标题的上下间距,而不会影响其他浮动体。同时,提醒用户如果调整后效果不明显,可能需要检查其他因素,如文档类的设置或其他包的冲突。</think>### LaTeX算法流程图标题间距调整方案 在LaTeX中解决算法流程图标题间距过大的问题,可以通过以下步骤实现: 1. **使用`caption`包调整全局标题间距** ```latex \usepackage{caption} \setlength{\abovecaptionskip}{-0.04cm} % 标题上方间距[^2] \setlength{\belowcaptionskip}{0.1cm} % 标题下方间距 ``` 2. **针对算法环境单独调整** ```latex \captionsetup[algorithm]{ aboveskip=2pt, % 标题上方间距 belowskip=3pt % 标题下方间距 } ``` 3. **检查算法宏包加载顺序** 确保`algorithm`和`caption`包的加载顺序正确: ```latex \usepackage{algorithm} \usepackage{algpseudocode} \usepackage{caption} ``` 4. **验证代码结构** 确保算法代码块中无多余空行: ```latex \begin{algorithm} \caption{快速排序算法} % 标题必须紧贴环境开始 \begin{algorithmic}[1] \Procedure{QuickSort}{$arr$} \If{$len(arr) > 1$} \State $pivot \gets arr[0]$ \State // 其他步骤 \EndIf \EndProcedure \end{algorithmic} \end{algorithm} ``` 5. **使用负间距补偿** ```latex \usepackage{etoolbox} \AtBeginEnvironment{algorithm}{\vspace*{-0.5cm}} % 算法前补偿 \AtEndEnvironment{algorithm}{\vspace*{-0.3cm}} % 算法后补偿 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值