对df1进行去重操作(去除完全重复的行数据):df1 = df1.drop_duplicates()
对df1的指定若干字段去重操作:df.drop_duplicates(subset=['col_name1','col_name2'],keep='first',inplace=True)
col_list = list(df) 获得df的列名称列表 [str]
df1.columns 获得df的列索引,类型为 pandas.core.indexes.base.Index 可使用list()将其转变为列表
使用如下语句 df1.columns = ['ca', 'cb', 2] # 该语句的df1有三个列,对其进行重命名,赋值一个列表即可。注意:df1的列数量要和列表的长度一致
df2 = df1[['c1', 'c3']] # df1 包括 'c1', 'c3'这两列,现在要只取这两列赋值给df2
如去除数值的守首尾空字符
df['db_brand'] = df['db_brand'].map(lambda x: x.strip()) # 对df 的 ‘db_brand’列中的值(字符类型),统一去除首尾空字符
df.db_brand = df.db_brand.map(lambda x: x.strip()) # 效果同上
df_keyword.sort_values(by=['月均搜索量'], inplace=True, ascending=False)
import pandas as pd
df_keyword = pd.DataFrame([], columns=['关键词', '推荐理由', '月均搜索量', '竞争程度', '建议出价'])
此时 df_keyword 即为一个空的df,列字段包括 ['关键词', '推荐理由', '月均搜索量', '竞争程度', '建议出价']
df_keyword = df_keyword.append(df_keyword_1)
且看如下示例
import pandas as pd
df = pd.DataFrame([{"a":1, "b":2, "c":3},
{"a":10, "b":20, "c":30},
{"a":10, "b":20, "c":300},
{"a":100, "b":200, "c":300}
])
# 将 a 字段等于10 的 并且 c 字段不等于300 的那一条数据 的 b 字段设置为 -20
df.loc[(df.a == 10) & (df.c != 300), 'b'] = -20
且看如下示例
python这种操作太s了
1. 读取的文件默认编码为 'utf-8'
df = pd.read_csv(file, encoding='utf-8')
2. 若读取的文件 编码为 'gb2312'
df = pd.read_csv(file, encoding='gbk')
try:
data_xlsx = pd.ExcelFile(file)
for name in data_xlsx.sheet_names: # data_xlsx.sheet_names 获取Excel文件中各个sheet名称
df = pd.read_excel(data_xlsx, name)
# 判断sheet
if df_column in df.columns:
logger.info(f"读取文件|{file_name}|读取sheet|{name}|列名称为第0行")
return df
df = pd.read_excel(data_xlsx, name, header=1)
if df_column in df.columns:
logger.info(f"读取文件|{file_name}|读取sheet|{name}|列名称为第1行")
return df
except Exception as e:
logger.error(f"文件名|{file_name}|读取文件失败|{e}|")
return None