一、df的行数和列数获取

def del_pd_data(panda):
    count = 0
    data = []
    nums = panda.shape
    for i in range(0, nums[1]):
        line_str = ''
        for j in range(0, nums[0]):
       
             _line_str = str(panda.iloc[j,i]) + ","   
             line_str += _line_str
        data.append(line_str)
        count += 1
    return data

df.shape #返回df的行数和列数
df.shape[0] #返回df的行数
df.shape[1] #返回df的列数

df.info()

二、pandas 取某列数据

import pandas as pd
data1 = pd.DataFrame(...) #任意初始化一个列数为3的DataFrame
data1.columns=['a', 'b', 'c']
 
#1. 这里取到第2列(即b列)的值
data1['b']
 
#2 效果同1,取第2列(即b列)
# 这里b为列名称,但必须是连续字符串,不能有空格。如果列名有空格,则只能采取第1种方法
data1.b

#3、这里取data1的第2列到最后一列的所有数据
data1[data1.columns[1:]]
 
#4 这里取6到11行的所有数据,而不是列数据,容易有误解,注意区分
data1[5:10]

三、ndarray转dataframe ,series

import numpy as np

import pandas as pd

data = np.array([1, 2, 3]).reshape(3, 1)

data_list = map(lambda x: x[0], data)

# 转Series
ser = pd.Series(data_list)

data = np.array([['2019/08/02', 'zhansan', 1], ['2019/08/03', 'lisi', 2], ['2019/08/04', 'wangwu', 3]])

# 转DataFrame
df = pd.DataFrame(data)

通过切片,实现某一行或者某一列转换为ndarray

import pandas as pd

data = [['2019/08/01', 10],

result = pd.DataFrame(data, columns=['ds', 'val'])

rs = result.values

print(rs[:, 0])

print(rs[0, :])

rs[:, 0] 逗号前面表示:行都保留,逗号后面0表示保留第一列,结果为['2019/08/01' '2019/08/01']

rs[0, :]表示保留第一行,列都保留,结果为['2019/08/01' 10]
 

四、参考

python ndarray转换 series,dataframe

来源:王同学加油

物联沃分享整理
物联沃-IOTWORD物联网 » Pandas行数和列数获取

发表评论