pandas是强大数据分析和操作工作,它提供快速、灵活和表达力强的数据结果,主要用于数据清洗和分析工作。通过pandas可方便的读取、操作和存储CSV数据格式。
生成表格数据保存到文件
def generate_csv(filename):
df = pd.DataFrame(np.arange(25).reshape((5,5)),
columns=['A','B','C','D','E'],
index=None)
df.to_csv(filename, index=False)
if __name__ == '__main__':
generate_csv('input.csv')
pandas_loc('input.csv', 'output.csv')
pandas_iloc('input.csv', 'output.csv')
通过行号和列名取数据
def pandas_loc(in_file, out_file):
# pd.set_option('display.max_rows', None)
# pd.set_option('display.max_columns', None)
data = pd.read_csv(in_file, encoding='utf-8') # 读全部数据
# data = pd.read_csv(in_file, encoding='gbk', nrows=10) # 只读取头面10行
# data = pd.read_csv(in_file, encoding='gbk', usecols=[0]) # 只读取第一列数据
# data = data.reset_index(drop=True)
print(data)
# 读连续几行
y = data.loc[0:3]
print('\ndata.loc[0:3]\n', y)
# 读不连续行
y = data.loc[[1,3]]
print('\ndata.loc[[1,3]]\n', y)
# 读连续几列
y = data.loc[:, 'A':'C']
print('\ndata.loc[:, A:C]\n', y)
# 读不连续列
y = data.loc[:, ['A','C']]
print('\ndata.loc[:, [A,C]]\n', y)
data.to_csv(out_file, index=False)
loc测试输出
A B C D E
0 0 1 2 3 4
1 5 6 7 8 9
2 10 11 12 13 14
3 15 16 17 18 19
4 20 21 22 23 24
# 读连续几行
data.loc[0:3]
A B C D E
0 0 1 2 3 4
1 5 6 7 8 9
2 10 11 12 13 14
3 15 16 17 18 19
# 读不连续行
data.loc[[1,3]]
A B C D E
1 5 6 7 8 9
3 15 16 17 18 19
# 读连续几列
data.loc[:, A:C]
A B C
0 0 1 2
1 5 6 7
2 10 11 12
3 15 16 17
4 20 21 22
# 读不连续列
data.loc[:, [A,C]]
A C
0 0 2
1 5 7
2 10 12
3 15 17
4 20 22
通过行号和列号取数据
def pandas_iloc(in_file, out_file):
# pd.set_option('display.max_rows', None)
# pd.set_option('display.max_columns', None)
data = pd.read_csv(in_file, encoding='utf-8') # 读全部数据
# data = pd.read_csv(in_file, encoding='gbk', nrows=10) # 只读取头面10行
# data = pd.read_csv(in_file, encoding='gbk', usecols=[0]) # 只读取第一列数据
# data = data.reset_index(drop=True)
print(data)
# 读连续几行
y = data.iloc[0:3]
print('\ndata.iloc[0:3]\n', y)
# 读不连续行
y = data.iloc[[1,3]]
print('\ndata.iloc[[1,3]]\n', y)
# 读连续几列
y = data.iloc[:, 0:3]
print('\ndata.iloc[:, 0:3]\n', y)
# 读不连续列
y = data.iloc[:, [1,3]]
print('\ndata.iloc[:, [1,3]]\n', y)
data.to_csv(out_file, index=False)
iloc测试输出
A B C D E
0 0 1 2 3 4
1 5 6 7 8 9
2 10 11 12 13 14
3 15 16 17 18 19
4 20 21 22 23 24
# 读连续几行
data.iloc[0:3]
A B C D E
0 0 1 2 3 4
1 5 6 7 8 9
2 10 11 12 13 14
# 读不连续行
data.iloc[[1,3]]
A B C D E
1 5 6 7 8 9
3 15 16 17 18 19
# 读连续几列
data.iloc[:, 0:3]
A B C
0 0 1 2
1 5 6 7
2 10 11 12
3 15 16 17
4 20 21 22
# 读不连续列
data.iloc[:, [1,3]]
B D
0 1 3
1 6 8
2 11 13
3 16 18
4 21 23
评论区