pandas笔记

导入pandas

import pandas as pd

读取excel文件

df = pd.read_excel(r'windows系统文件路径', 'sheet名')

如果是linux系统则不用在文件路径前添加 r

限定某列数据出现次数大于等于2

name = df.列名.value_counts().loc[lambda x: x>=2].index

最后将返回所有符合条件的数据

获取列表中出现的数据(以及未出现的)

list2 = []
for i in name:
  list2.append(i)
list2

df = df[df['列名'].isin(list2)]

以上将输出存在于列表中的数据

下面的写法将排除已出现在列表或者series中的数据

new_df1 = new_df[~new_df.isin(df)]

切片索引获取数据

df = df.iloc[:, 3:]

以上获取所有行,以及第4行往后的数据

df = df.iloc[0:14090, 0:3]

删除多列数据

df = df.drop( df.iloc[:, [1,2,4,5,6]], axis=1 )

对列数据进行排序

df = df.sort_values(by='列名', ascending=False)

将数据保存为excel文件

df.to_excel(r'文件路径',sheet_name = "sheet名",index = False,na_rep = 0,inf_rep = 0)

删除空值和重复值

# 这里是删除一列的重复值
df1 = df['列名'].dropna().drop_duplicates()

# 对于总表删除重复行
df.drop_duplicates()

合并多个series为1个series

new_df = pd.Series()
new_df = new_df.append(df1)
new_df = new_df.append(df2)
new_df = new_df.append(df3)
new_df.drop_duplicates()

获取单列

df1 = df["列名"]

文本相似度计算

import difflib
list1 = []
for i in range(14090):
  list1.append(difflib.SequenceMatcher(None, df1[i], df2[i]).quick_ratio())

插入新列

df.insert(df.shape[1], '文本相似度', list1)

将列中一部分数据转变为1

list2 = [1 for i in range(14065)]
df.iloc[0:14065, 2] = list2

将表转置

# 将表转置
key1 = pd.DataFrame(key1.values.T, index=key1.columns, columns=key1.index)

获取第4列到最后1列的数据

# 获取第4列到最后1列的数据
value1 = tail.iloc[:, 3:tail.shape[1] + 1]

将函数应用于dataframe中每一个元素

# 将函数应用于dataframe中每一个元素
bool_array = dataframe1.applymap(lambda x:"w" in x)
out_array = dataframe1[bool_array]

将dataframe转换为列表

# 首先将pandas读取的数据转化为array
import numpy as np
data_array = np.array(value1)
# 然后转化为list形式
data_list =data_array.tolist()
posted @ 2022-08-22 11:55  tiansz  阅读(30)  评论(0编辑  收藏  举报