一、列选择
df['<列名>'] # 选择单列
df[['<列名>', '<列名>']] # 选择多列
df.iloc[:,[x, y, z]] # 选择x y z列
二、行选择
df.loc[[x]] # 选择x行
df.loc[[x, y, z]] # 选择 x, y, z行
df.loc[x:y] # 选择 x~y行
# 当df的索引是文字时, x y z应是对应的索引名, 且不支持切片
df.iloc[x:y] # 选择x~y-1行
df.iloc[[x]] # 选择x行
df.iloc[[x, y, z]] # 选择 x, y, z行
df[df['<列名>'] >= x] # 选择<列名>中值大于x的行
三、行列选择
# loc选择列时只使用列名 不使用数字
df.loc[[x, y], ["<列名1>", "<列名2>"]] # 选择x, y行, <列名1> <列名2>
df.loc[x:y, ["<列名1>", "<列名2>"]] # 选择x~y行, <列名1> <列名2>
# iloc选择列时只使用数字 不使用列名
df.iloc[[x, y], [a, b]] # 选择x, y行 a, b列
df.iloc[x:y, a:b] # 选择x:y行,a:b列
df[df["<列名>"] >= x][["<列名1>","<列名2>"]] #选择<列名>中大于x的行的<列名1><列名2>
四、创建DataFrame
1、使用单层字典创建
data = {"key1": ["value1"],
"key2": ["value2"],
"key3": ["value3"]
}
index = ['a']
dataframe = pd.DataFrame(data, index = index)
# 字典的键做为DataFrame的列名
# 字典的值做为DataFrame的列的值,必须以列表形式给出
# index用来设置DataFrame行的索引,默认是数字
2. 使用双层字典创建
data = {'a': {"key1": " valuea1", "key2": "valuea2"},
'b': {"key1": " valueb1", "key2": "valueb2"},
'c': {"key1": " valuec1", "key2": "valuec2"}}
dataframe = pd.DataFrame.from_dict(data, orient='index')
# orient='index' 时 a, b c为行索引 key1, key2为列名
# orient='columns' 时 a, b c为列名 key1, key2为行索引
# value分别对应行为列的值
# 这是一个3行两列的DataFrame,内层的不同的key的数量决定了行数
# 若某一行缺失key:value,则补充Nan
3、使用numpy array创建
data = np.arange(0, 16).reshape((4, 4))
dataframe = pd.DataFrame(data,
index=pd.date_range("20240102", periods=4),
columns=list("abcd"))
# 创建了一个4*4的矩阵
# 设置索引为2024-01-02 ~ 2024-01-05
# 设置列名为 a b c d
# 列表所表示的矩阵有相同的创建方法
五、基本属性
1. 索引 DataFrame.index && 列名 DataFrame.columns
print(dataframe.index) # 输出索引信息
dataframe.index.name = '<index name>' # 设置索引index名
dataframe.iloc[[x]] = '<value>' # 按行选中并赋值
print(dataframe.columns) # 输出列名
dataframe.columns.name = '<columns name>' # 为DataFrame创建列<columns name>的列
dataframe['<columns name>'] = '<value>' # 按列选中并赋值
2. 其它
print(dataframe.values) # 输出底层numpy类型数据
print(dataframe.head(n)) # 输出前n行
print(dataframe.tail(n)) # 输出后n行
dataframe = dataframe.round({'<columns1>': x, '<columns2>': y})
# 不同的列制定不同的小数点位数
----不断更新ing----