做网站学哪种代码好,常州微网站建设文档,网站建设需要考虑哪些因素,桂林网站建设官网Pandas简介
Pandas 是一个强大的数据处理和分析库#xff0c;广泛应用于 Python 数据科学和机器学习领域。它提供了丰富的数据结构和数据操作工具#xff0c;使得数据清洗、转换、合并、重塑、选择等任务变得更加简单高效。以下是 Pandas 的一些主要特点和常用功能#xff…Pandas简介
Pandas 是一个强大的数据处理和分析库广泛应用于 Python 数据科学和机器学习领域。它提供了丰富的数据结构和数据操作工具使得数据清洗、转换、合并、重塑、选择等任务变得更加简单高效。以下是 Pandas 的一些主要特点和常用功能
主要特点 数据结构 Series一维带标签的数组可以存储任何数据类型整数、字符串、浮点数、Python 对象等。DataFrame二维带标签的数据结构可以看作是由多个 Series 组成的表格支持不同的数据类型。 数据导入导出 支持多种文件格式的数据读写包括 CSV、Excel、SQL 数据库、JSON、HTML 等。 数据清洗 提供了丰富的数据清洗工具如缺失值处理、重复值处理、数据类型转换等。 数据选择和过滤 强大的数据选择和过滤功能支持按条件筛选、按索引选择、布尔索引等。 数据操作 支持数据排序、去重、合并、分组聚合等操作。 时间序列分析 提供了专门的时间序列数据处理功能如日期范围生成、频率转换、移动窗口统计等。
常用功能 创建 DataFrame import pandas as pddata {Name: [Alice, Bob, Charlie],Age: [25, 30, 35],City: [New York, Los Angeles, Chicago]
}df pd.DataFrame(data)读取和保存数据 # 读取 CSV 文件
df pd.read_csv(data.csv)# 保存 DataFrame 到 CSV 文件
df.to_csv(output.csv, indexFalse)数据选择和过滤 # 按条件筛选
young_people df[df[Age] 30]# 按索引选择
first_row df.loc[0]# 按列名选择
names df[Name]数据清洗 # 处理缺失值
df.dropna() # 删除含有缺失值的行
df.fillna(0) # 用 0 填充缺失值# 重命名列
df.rename(columns{OldName: NewName})数据操作 # 分组聚合
age_group df.groupby(City)[Age].mean()# 合并 DataFrame
df1 pd.DataFrame({A: [1, 2], B: [3, 4]})
df2 pd.DataFrame({A: [5, 6], B: [7, 8]})
merged_df pd.concat([df1, df2])# 排序
sorted_df df.sort_values(byAge, ascendingFalse)时间序列分析 # 创建日期范围
date_range pd.date_range(start1/1/2020, periods10)# 设置 DataFrame 的索引为日期
df.set_index(date_range, inplaceTrue)# 滚动窗口计算
rolling_mean df[Value].rolling(window3).mean()总结
Pandas 是一个非常强大的库适用于各种数据处理和分析任务。无论你是初学者还是有经验的数据科学家Pandas 都是一个值得掌握的工具。希望以上介绍对你有所帮助如果你有任何具体的问题或需要进一步的示例请随时提问。
Pandas 查询引擎
本指南向您展示如何使用我们的PandasQueryEngine使用llm将自然语言转换为Pandas python代码。
PandasQueryEngine的输入是一个Pandas数据框输出是一个响应。LLM推断要执行的数据帧操作以便检索结果。
警告此工具提供对eval函数的LLM访问。可以在运行此工具的机器上执行任意代码。虽然对代码进行了某种程度的过滤但不建议在没有大量沙箱或虚拟机的生产环境中使用该工具。
如果你在colab上打开这个Notebook你可能需要安装LlamaIndex。
pip install llama-index llama-index-experimental
pip install llama-index-core
pip install llama-index-llms-dashscopeimport logging
import sys
from IPython.display import Markdown, displayimport pandas as pd
from llama_index.experimental.query_engine import PandasQueryEnginelogging.basicConfig(streamsys.stdout, levellogging.INFO)
logging.getLogger().addHandler(logging.StreamHandler(streamsys.stdout))让我们从DataFrame开始
这里让我们加载一个非常简单的包含城市和人口对的数据框架并在其上运行PandasQueryEngine。
通过设置verboseTrue我们可以看到中间生成的指令。
Settings.llm DashScope(model_nameDashScopeGenerationModels.QWEN_TURBO, api_keyyour-api-key, max_tokens512,system_prompt总是用中文回答
)# 对一些样本数据进行测试
df pd.DataFrame({city: [Toronto, Tokyo, Berlin],population: [2930000, 13960000, 3645000],}
)query_engine PandasQueryEngine(dfdf, verboseTrue)response query_engine.query(人口最多的城市是哪个,
)
print(--------------------------------------)
print(str(response))
print(########################################)
# 获取pandas python 指令
print(response.metadata[pandas_instruction_str])Pandas Instructions: df.loc[df[population].idxmax(), city] Pandas Output: Tokyo Tokyo ######################################## df.loc[df[‘population’].idxmax(), ‘city’] df.loc[df[population].idxmax(), city]这行代码的作用是从DataFrame df 中找出人口 (population) 最多的城市 (city) 的名称。让我们分解一下这行代码来更好地理解它的功能 df[population].idxmax(): 这部分代码用于找到 population 列中的最大值对应的索引。idxmax() 函数会返回该列中最大值所在的那一行的索引标签。 df.loc[...]: loc 是Pandas库中用于按标签访问数据的方法。它允许你通过指定行标签或列标签来选择数据。 df.loc[df[population].idxmax(), city]: 首先df[population].idxmax() 找到了 population 列中最大值所在的行的索引。然后df.loc[...] 使用这个索引来选择对应的整行数据。最后city 参数告诉 loc 方法只返回这一行中 city 列的值。
综上所述这段代码的结果就是返回 DataFrame df 中 population 列的最大值对应的城市名。如果 df 是一个包含不同城市及其人口数据的表格那么这段代码将告诉你哪个城市的人口最多并给出这个城市的名称。
我们还可以采取使用 LLM 合成响应的步骤。
query_engine PandasQueryEngine(dfdf, verboseTrue, synthesize_responseTrue)
response query_engine.query(人口最多的城市是哪个同时给出城市和人口,
)
print(str(response))
print(response.metadata[pandas_instruction_str])Pandas Instructions: df.loc[df[population].idxmax(), [city, population]] Pandas Output: city Tokyo population 13960000 Name: 1, dtype: object city Tokyo population 13960000 Name: 1, dtype: object df.loc[df[‘population’].idxmax(), [‘city’, ‘population’]] df.loc[df[population].idxmax(), [city, population]] 这行代码的作用是从DataFrame df 中找出人口 (population) 最多的城市 (city) 的名称及其人口数。[city, population] 参数告诉 loc 方法只返回这一行中 city 和 population 列的值。
分析泰坦尼克号数据集
泰坦尼克号数据集是入门级机器学习中最受欢迎的表格数据集之一 来源 https://www.kaggle.com/c/titanic
下载数据
https://raw.githubusercontent.com/jerryjliu/llama_index/main/docs/docs/examples/data/csv/titanic_train.csv
保存为 titanic_train.csv 文件放到代码根目录文件夹下
df pd.read_csv(./titanic_train.csv)
query_engine PandasQueryEngine(dfdf, verboseTrue)
response query_engine.query(What is the correlation between survival and age?,
)Pandas Instructions: df[survived].corr(df[age]) Pandas Output: -0.07722109457217755 df[‘survived’].corr(df[‘age’]) -0.07722109457217755 df[survived].corr(df[age]) 这行代码是用来计算DataFrame df 中的两个列 survived 和 age 之间的皮尔逊相关系数Pearson correlation coefficient。这里假设 df 是一个使用Pandas库创建的数据表。 皮尔逊相关系数衡量的是两个变量之间的线性关系强度和方向。其值范围从 -1 到 1 如果相关系数接近 1这意味着两个变量之间存在强正相关关系即一个变量增加时另一个变量也倾向于增加。 如果相关系数接近 -1这意味着两个变量之间存在强负相关关系即一个变量增加时另一个变量倾向于减少。 如果相关系数接近 0则表明两个变量之间没有明显的线性关系。 在你的例子中survived 可能是一个二进制变量例如生存状态1 表示生还0 表示未生还而 age 是乘客的年龄。计算这两个变量的相关系数可以帮助了解年龄是否与生还率有线性关系以及这种关系的方向是正向还是负向。
其他步骤
分析/修改提示
让我们看看提示
from llama_index.core import PromptTemplate
query_engine PandasQueryEngine(dfdf, verboseTrue)
prompts query_engine.get_prompts()
print(prompts[pandas_prompt].template)You are working with a pandas dataframe in Python. The name of the dataframe is df. This is the result of print(df.head()): {df_str} Follow these instructions: {instruction_str} Query: {query_str} Expression: print(prompts[“response_synthesis_prompt”].template) Given an input question, synthesize a response from the query results. Query: {query_str} Pandas Instructions (optional): {pandas_instructions} Pandas Output: {pandas_output} Response: 您也可以更新提示
new_prompt PromptTemplate(\
You are working with a pandas dataframe in Python.
The name of the dataframe is df.
This is the result of print(df.head()):
{df_str}Follow these instructions:
{instruction_str}
Query: {query_str}Expression:
)query_engine.update_prompts({pandas_prompt: new_prompt})这是指令字符串您可以通过在初始化时传入来自定义instruction_str
instruction_str \
1. Convert the query to executable Python code using Pandas.
2. The final line of code should be a Python expression that can be called with the eval() function.
3. The code should represent a solution to the query.
4. PRINT ONLY THE EXPRESSION.
5. Do not quote the expression.