Python - pandas
Python pandas 是python的数据分析包
下面代码可以复制到python环境下运行
目录
-
pd读取csv文件,保存成csv文件
-
- list转化成dataFrame
- dataFrame的转置
- 给dataFrame指定列名
- pd.concat, 合并两个dataFrame
-
- 给DataFrame添加列
- 设置新添加的列为索引
- 对DataFrame所有数据保留有效数值
-
- 字典转dataframe的三种方法
正文
读取csv文件:
pd.read_csv("文件名.csv")
pd.to_csv(“文件名.csv”)
- list转化成dataFrame
- dataFrame的转置
- 给dataFrame指定列名
- pd.concat, 合并两个dataFrame
import pandas as pd
#定义两个 (3, 6) 二维列表a,c
a = [[1,2,3,4,2,3,2],[1,2,3,4,2,3,2],[1,2,3,4,2,3,2]]
c = [['abc', 'bcd', 'abc', 'bcd', 'abc', '234','789'],['abc', 'bcd', 'abc', 'bcd', 'abc', '234','789'],['abc', 'bcd', 'abc', 'bcd', 'abc', '234','789']]
#把二维列表直接转成dataFrame的格式
df1 = pd.DataFrame(a)
df2 = pd.DataFrame(c)
#对dataFrame进行转置, 变成了(6, 3) 格式
df1 = df1.T
df2 = df2.T
#可以通过columns指定它们的列名,inplace = True 是直接在原dataFrame更改, 默认是false,不改变原dataFrame,要重新赋值。
df1.rename(columns={0:'one', 1: 'two', 2:"three"},inplace=True)
df2.rename(columns={0:'four', 1: 'five', 2:"six"},inplace=True)
#合并两个dataFrame, axis = 1 是横向合并, axis = 0 是纵向合并
result = pd.concat([df1, df2], axis=1)
#print(df1)
#print(df2)
#print(result)
#把dataFrame导出成一个csv文件, index = 0 保存时候不保存索引, 默认保存索引。
result.to_csv("文件名.csv", index = 0)
- 给DataFrame添加列
- 设置新添加的列为索引
- 对DataFrame所有数据保留有效数值
import pandas as pd
x = [1,2,3,4,2,3,2]
y = ['abc', 'bcd', 'abc', 'bcd', 'abc', '234','789']
df3 = pd.DataFrame(x)
df4 = pd.DataFrame(y)
df3 = df3.T
df4 = df4.T
#合并两个dataFrame, axis = 1 是横向合并, axis = 0 是纵向合并
result1 = pd.concat([df3, df4], axis=0)
#按照上面合并之后两行的索引都是0
print(result1)
#给DataFrame添加一列
result1['Name'] = ['数字', '字母']
#把这一列设置为index, inplace = True替换原DataFrame
result1.set_index('Name', inplace=True)
print(result1)
#保留两位有效数值
print(result1.round(2))
- 字典转化成dataframe的三种方法
import pandas as pd
all_mea = {"True Postive (TP)":34,"False Postive (FP)":12,"True Negative (TN)":30,"False Negative (FN)":3,
"Accuracy":0.81,"Precision":0.74,"Recall":0.92,"F-measure":0.82}
#如果字典里key和value是一一对应的,那么直接输入my_df = pd.DataFrame(my_dict)会报错
#把字典转换成dataFrame方法1
#使用DataFrame函数时指定字典的索引index
my_df1 = pd.DataFrame(all_mea, index=[0]).T
print(my_df1)
#把字典转换成dataFrame方法2
#把字典dict转为list后传入DataFrame
my_list = [all_mea]
my_df2 = pd.DataFrame(my_list).T
print(my_df2)
#把字典转换成dataFrame方法3
#使用DataFrame.from_dict函数, orient 指定字典转换的方向
my_df3 = pd.DataFrame.from_dict(all_mea, orient='index')
print(my_df3)
#字典转list的错误示范
my_list1 = list(all_mea)
print(my_list,'\n', my_list1)
my_df4 = pd.DataFrame(my_list1).T
print(my_df4)