1. 创建dataframe
- 法一
1 | dat = pd.DataFrame({'id':[1,2,3], 'string': ['a', 'b','c']}) |
- 法二(若已有现成的list)
1 | dat = pd.DataFrame([n_clusters_start, score], columns = ["分类数", "得分"]) |
例:
1 | exclamationCount = lambda text: sum([1 for x in text if x == '!']) |
1 | eachLetterCount = lambda text,letter: sum([1 for x in text.lower() if x == letter]) |
2. 数据框拼接
ignore_index = True, 重新分配索引
2.1 append
1 | result = result1.append(result2, ignore_index = True) # 粘贴行 |
2.2 concat
1 | result = pd.concat([result1, result2], ignore_index = True) # 默认axis = 0, 粘贴行 |
2.3 merge
3. 删掉列
1 | RF_eval.drop(['raw'], axis = 1, inplace = True) |
4. 删掉行
1 | dat = dat.drop(0) # 删掉第一行 |
5. 提取行索引
1 | index0 = res.index[res['label'] == 0].tolist() |
6. 提取特定的行
1 | df[df['id']=1] # 提取id为1的行 |
7. DataFrame 中 axis 的概念
在 DataFrame 对象的大多数方法中,都会有 axis
这个参数,它控制了你指定的操作是沿着0轴还是1轴进行。axis=0
代表操作对列columns
进行,axis=1
代表操作对行row
进行,如下图所示。
换言之,如果想增加一列(如把两个数据框横向拼接在一起(沿着axis=1的方向)),则选择axis=1,如果想增加一行(如对以上数据,对height求和(结果将显示在最下方,即”增加了一行”(沿着axis=0的方向))),则选择axis=0
假设现在需要对上述数据框中的数值列分别进行取对数和求和的操作,这时可以用apply
进行相应的操作,因为是对列进行操作,所以需要指定axis=0
:
1 | # 沿着0轴求和 |