在生活和科研任务中,我们经常需要处理大量的Excel数据。面对几W条数据,甚至几十万条数据,在Excel中操作是远远不够的。这时候就要发挥Python的威力了!
# 读取Excel数据
def read_file(file_name):
# 类似的读取.csv文件,使用read_csv
# 读取sql文件,使用read_sql
# 读取html文件,使用read_html
df = pd.read_excel(file_name)
print(df)
return df
# 写入数据
def write_data(df):
save_name = 'H691_dealed6.xlsx'
# 类似的有to_html、to_sql、to_csv
df.to_excel(save_name)
def select_data(df):
# 给所有数据新加一列,新的一列名称叫做趟次
# 如何算df的行数 df.shape[0]或者是len(df)
# 直接df['新列名'] = pd.Series(要填充的数据,index=填充原df,行的范围)
df['趟次'] = pd.Series([0] * (df.shape[0]), index=np.arange(len(df)))
print(df)
# 在DataFrame上新加一列
df['E'] = pd.Series([1, 2, 3, 4, 5, 6], index=pd.date_range('20220701', periods=6))
print("-" * 50)
print(df)
# 测试迭代df
def test_loop(df):
for i in range(len(df)):
# 迭代每一行
print(df.loc[i])
print("&" * 50)
# df.shape[0]代表df行数、df.shape[1]代表df列数
for j in range(df.shape[0]):
# 迭代每行的第一列
print(df.iloc[j, 1])
# 根据位置进行筛选
print("-" * 50)
print(df.iloc[3])
print("-" * 50)
print(df.iloc[[1,3,5], 1:3])
# 测试df中日期数据类型
def time_test(df):
print(df.iloc[0, 0])
print(type(df.iloc[0, 0]))
print("时间差格式为")
print(df.iloc[1642, 0]-df.iloc[568, 0])
# 测试df中日期数据类型
def time_test(df):
print(df.iloc[0, 0])
print(type(df.iloc[0, 0]))
print("时间差格式为")
print(df.iloc[1642, 0]-df.iloc[568, 0])
print("时间差转化为秒的格式")
print((df.iloc[1642, 0]-df.iloc[568, 0]).total_seconds())
我们可以将要删除的行索引找到,然后使用drop函数进行删除。
print(final_df)
# 按行索引进行删除,删除第0行
end_df = final_df.drop(0)
print("-" * 50)
print(end_df)
删除列也是一样的,直接传入列的名字,使用drop函数进行删除!(注意指定axis参数)
print(final_df)
# 删除指定列,axis参数=1,表示列
# 删除指定行时,axis可以不用专门指定,因为axis默认为0
end_df = final_df.drop('坡度', axis=1)
print("-" * 50)
print(end_df)
参考这篇博客:https://blog.csdn.net/sigtem/article/details/81735242?spm=1001.2014.3001.5506
print(final_df)
# 相当于直接筛选掉,趟次列为1的所有行数据
end_df = final_df[df['趟次'] != 1]
print("-" * 50)
print(end_df)