数据创建
1.列表形式创建
默认行模式进行创建:
a = ['c','d']
b = ['2','3']
c= []
c.append(a)
c.append(b)
d = pd.DataFrame(c,columns = ['a','b'])
print(d)
##默认行模式
Out[1]:
a b
0 c d
1 2 3
如果要转换为列模式,需要进行如下处理:
h = d.T
h = h.rename(columns = {0:'a',1:'b'})
print(h)
Out[59]:
a b
a d 2
b b 3
生成测试样例数据:
l = []
for i in range(1,10):
c = []
for j in range(1,10):
print(str(i)+','+str(j))
d = str(i)+','+str(j)
c.append(d)
l.append(c)
df = pd.DataFrame(l,columns = [chr(i) for i in range(97,106)])
#注:python是以0为索引的开始。
#############out#####################
print(df)
a b c d e f g h i
0 1,1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 1,9
1 2,1 2,2 2,3 2,4 2,5 2,6 2,7 2,8 2,9
2 3,1 3,2 3,3 3,4 3,5 3,6 3,7 3,8 3,9
3 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9
4 5,1 5,2 5,3 5,4 5,5 5,6 5,7 5,8 5,9
5 6,1 6,2 6,3 6,4 6,5 6,6 6,7 6,8 6,9
6 7,1 7,2 7,3 7,4 7,5 7,6 7,7 7,8 7,9
7 8,1 8,2 8,3 8,4 8,5 8,6 8,7 8,8 8,9
8 9,1 9,2 9,3 9,4 9,5 9,6 9,7 9,8 9,9
print(l)
[['1,1', '1,2', '1,3', '1,4', '1,5', '1,6', '1,7', '1,8', '1,9'],
['2,1', '2,2', '2,3', '2,4', '2,5', '2,6', '2,7', '2,8', '2,9'],
['3,1', '3,2', '3,3', '3,4', '3,5', '3,6', '3,7', '3,8', '3,9'],
['4,1', '4,2', '4,3', '4,4', '4,5', '4,6', '4,7', '4,8', '4,9'],
['5,1', '5,2', '5,3', '5,4', '5,5', '5,6', '5,7', '5,8', '5,9'],
['6,1', '6,2', '6,3', '6,4', '6,5', '6,6', '6,7', '6,8', '6,9'],
['7,1', '7,2', '7,3', '7,4', '7,5', '7,6', '7,7', '7,8', '7,9'],
['8,1', '8,2', '8,3', '8,4', '8,5', '8,6', '8,7', '8,8', '8,9'],
['9,1', '9,2', '9,3', '9,4', '9,5', '9,6', '9,7', '9,8', '9,9']]
2. 字典形式创建
aa = pd.DataFrame({'a':[1,2],'b':[2,3]})
Out[72]:
a b
0 1 2
1 2 3
3. 创建空的DataFrame
df = pd.DataFrame(index = [i for i in range(3)],columns=df.columns)
-
增加行
df = pd.concat([df,df2],ignore_index = True,axis = 0) # axis = 0,按行连接 # axis = 1,按列连接 # ignore_index,重排索引
-
转换数据类型
# 1.创建 DataFrame 时指定类型 df= pd.DataFrame(data=np.arange(100).reshape((10,10)), dtype=np.int8) # 2. 对于 series,可以使用to_numeric 转换为数值。默认情况下,它不能处理字母型的字符串'pandas' pd.to_numeric(pd.Series(['1', '2', '4.7', 'pandas', '10'])) ##可以将无效值强制转换为NaN pd.to_numeric(s, errors='coerce') ##如果遇到无效值,第三个选项就是忽略该操作 pd.to_numeric(s, errors='ignore') # 3.DataFrame.apply函数处理每一列 df[['col2','col3']] = df[['col2','col3']].apply(pd.to_numeric) # 4. 类型自动推断 df = df.infer_objects() # 5. 强制转换 df = df.astype(float)
Series 排序
排序功能
print 'series通过索引进行排序:'
print series.sort_index()
print 'series通过值进行排序:'
print series.sort_values()
print 'dataframe根据行索引进行降序排序(排序时默认升序,调节ascending参数):'
print frame.sort_index(ascending=False)
print 'dataframe根据列索引进行排序:'
print frame.sort_index(axis=1)
print 'dataframe根据值进行排序:'
print frame.sort_values(by='a')
print '通过多个索引进行排序:'
print frame.sort_values(by=['a','c'])
网友评论