|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
引言
Pandas是Python中最流行的数据分析库之一,它提供了强大的数据结构和数据分析工具,使得数据处理变得简单高效。然而,数据处理的价值不仅在于分析过程,更在于如何将结果清晰、有效地呈现出来。无论是数据报告、学术论文还是商业决策,良好的结果呈现都能让数据的价值得到最大化的体现。
本文将全面介绍Pandas中的各种结果输出方法,从基础的打印显示到高级的可视化呈现,帮助你掌握Pandas结果输出的技巧,让你的数据处理成果能够完美呈现。
Pandas基础输出方法
基本打印输出
最简单的输出方式是使用Python的print()函数。当你创建一个Pandas DataFrame或Series后,可以直接打印它:
- import pandas as pd
- import numpy as np
- # 创建一个简单的DataFrame
- data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
- 'Age': [25, 30, 35, 40],
- 'Salary': [50000, 60000, 70000, 80000]}
- df = pd.DataFrame(data)
- # 打印DataFrame
- print(df)
复制代码
输出结果:
- Name Age Salary
- 0 Alice 25 50000
- 1 Bob 30 60000
- 2 Charlie 35 70000
- 3 David 40 80000
复制代码
使用display函数
在Jupyter Notebook或IPython环境中,可以使用display()函数获得更好的显示效果:
- from IPython.display import display
- display(df)
复制代码
display()函数会输出一个格式更美观的表格,并且支持HTML渲染。
控制显示选项
Pandas提供了多种选项来控制数据的显示方式,这些选项可以通过pd.set_option()函数设置:
- # 设置显示的最大行数
- pd.set_option('display.max_rows', 10)
- # 设置显示的最大列数
- pd.set_option('display.max_columns', 10)
- # 设置列宽
- pd.set_option('display.max_colwidth', 50)
- # 设置浮点数精度
- pd.set_option('display.precision', 2)
- # 创建一个较大的DataFrame来测试显示效果
- large_df = pd.DataFrame(np.random.randn(20, 15), columns=[f'Col_{i}' for i in range(15)])
- # 显示DataFrame
- display(large_df)
复制代码
你还可以使用pd.get_option()查看当前的显示设置,或使用pd.reset_option()恢复默认设置:
- # 查看当前的最大行数设置
- print(pd.get_option('display.max_rows'))
- # 恢复默认设置
- pd.reset_option('all')
复制代码
使用head和tail方法
当处理大型数据集时,通常不需要查看所有数据,可以使用head()和tail()方法查看数据的前几行和后几行:
- # 查看前3行
- print(df.head(3))
- # 查看后2行
- print(df.tail(2))
复制代码
使用sample方法随机抽样
sample()方法可以随机抽取数据中的几行,这对于快速了解数据分布很有帮助:
- # 随机抽取2行
- print(df.sample(2))
- # 按比例抽样,例如抽取50%的数据
- print(df.sample(frac=0.5))
复制代码
Pandas数据格式化输出
数字格式化
Pandas允许你控制数字的显示格式,特别是对于浮点数:
- # 创建包含浮点数的DataFrame
- float_df = pd.DataFrame({
- 'Value': [3.14159265, 2.71828183, 1.41421356, 1.73205081],
- 'Percentage': [0.2543, 0.8921, 0.3456, 0.7890]
- })
- # 设置浮点数精度为2位小数
- pd.set_option('display.float_format', '{:.2f}'.format)
- print(float_df)
- # 恢复默认格式
- pd.reset_option('display.float_format')
复制代码
你还可以使用round()方法对数据进行四舍五入:
- # 将数据四舍五入到2位小数
- rounded_df = float_df.round(2)
- print(rounded_df)
复制代码
百分比格式化
对于百分比数据,可以使用以下方法格式化:
- # 创建百分比格式化函数
- def percentage_formatter(x):
- return f'{x:.2%}'
- # 应用格式化
- formatted_df = float_df.copy()
- formatted_df['Percentage'] = formatted_df['Percentage'].apply(percentage_formatter)
- print(formatted_df)
复制代码
日期时间格式化
对于日期时间数据,可以使用dt访问器和strftime()方法进行格式化:
- # 创建包含日期的DataFrame
- date_df = pd.DataFrame({
- 'Date': pd.date_range('2023-01-01', periods=5),
- 'Value': [100, 200, 150, 300, 250]
- })
- # 格式化日期
- date_df['Formatted_Date'] = date_df['Date'].dt.strftime('%Y-%m-%d (%A)')
- print(date_df)
复制代码
字符串对齐
你可以控制列中字符串的对齐方式:
- # 创建字符串DataFrame
- str_df = pd.DataFrame({
- 'Left': ['Apple', 'Banana', 'Cherry'],
- 'Center': ['Dog', 'Elephant', 'Fox'],
- 'Right': ['Giraffe', 'Hippo', 'Iguana']
- })
- # 设置字符串对齐方式
- pd.set_option('display.colheader_justify', 'left') # 可以是 'left', 'right', 'center'
- print(str_df)
复制代码
使用style属性进行高级格式化
Pandas的style属性提供了更强大的格式化功能:
- # 使用style格式化数据
- styled_df = float_df.style.format({
- 'Value': '{:.3f}', # 3位小数
- 'Percentage': '{:.2%}' # 百分比格式
- })
- # 显示格式化后的DataFrame
- display(styled_df)
复制代码
你还可以使用style属性添加颜色、条形图等视觉效果:
- # 添加背景渐变色
- styled_df = float_df.style.background_gradient(cmap='Blues')
- # 添加条形图
- styled_df = float_df.style.bar(subset=['Value'], color='#5fba7d')
- # 显示格式化后的DataFrame
- display(styled_df)
复制代码
Pandas数据导出
导出为CSV
CSV是最常见的数据交换格式之一:
- # 导出为CSV
- df.to_csv('output.csv', index=False) # index=False表示不保存行索引
- # 可以指定分隔符
- df.to_csv('output.tsv', sep='\t', index=False) # TSV格式
- # 可以只导出部分列
- df.to_csv('output_partial.csv', columns=['Name', 'Age'], index=False)
- # 可以处理编码问题
- df.to_csv('output_utf8.csv', encoding='utf-8', index=False)
复制代码
导出为Excel
Excel是商业环境中常用的格式:
- # 导出为Excel
- df.to_excel('output.xlsx', index=False)
- # 导出到Excel的不同工作表
- with pd.ExcelWriter('output_multiple.xlsx') as writer:
- df.to_excel(writer, sheet_name='Sheet1', index=False)
- float_df.to_excel(writer, sheet_name='Sheet2', index=False)
- # 可以设置单元格格式
- writer = pd.ExcelWriter('output_formatted.xlsx', engine='xlsxwriter')
- df.to_excel(writer, sheet_name='Sheet1', index=False)
- # 获取工作簿和工作表对象
- workbook = writer.book
- worksheet = writer.sheets['Sheet1']
- # 添加格式
- format1 = workbook.add_format({'num_format': '$#,##0.00'})
- worksheet.set_column('B:C', None, format1)
- writer.save()
复制代码
导出为HTML
HTML格式适合在网页中展示:
- # 导出为HTML
- html = df.to_html(index=False)
- # 保存到文件
- with open('output.html', 'w') as f:
- f.write(html)
- # 可以添加表格样式
- html_styled = df.to_html(table_id='data_table', classes='table table-striped')
- with open('output_styled.html', 'w') as f:
- f.write(html_styled)
复制代码
导出为JSON
JSON是Web应用中常用的数据格式:
- # 导出为JSON
- json_str = df.to_json(orient='records') # orient参数控制输出格式
- # 保存到文件
- with open('output.json', 'w') as f:
- f.write(json_str)
- # 不同的orient参数
- print("Default (columns):")
- print(df.to_json())
- print("\nRecords:")
- print(df.to_json(orient='records'))
- print("\nIndex:")
- print(df.to_json(orient='index'))
- print("\nValues:")
- print(df.to_json(orient='values'))
复制代码
导出为其他格式
Pandas还支持导出为其他格式,如SQL数据库、Parquet、HDF5等:
- # 导出到SQL数据库
- import sqlite3
- # 创建内存数据库
- conn = sqlite3.connect(':memory:')
- # 导出数据
- df.to_sql('people', conn, if_exists='replace', index=False)
- # 从数据库读取数据验证
- result = pd.read_sql('SELECT * FROM people', conn)
- print(result)
- # 导出为Parquet格式(需要安装pyarrow或fastparquet)
- df.to_parquet('output.parquet', index=False)
- # 导出为HDF5格式
- df.to_hdf('output.h5', key='df', mode='w')
复制代码
Pandas可视化输出
使用Matplotlib进行基本绘图
Pandas内置了Matplotlib接口,可以直接进行数据可视化:
- import matplotlib.pyplot as plt
- # 设置中文字体显示
- plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
- plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
- # 创建示例数据
- plot_df = pd.DataFrame({
- 'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],
- 'Sales': [120, 150, 180, 220, 260, 300],
- 'Expenses': [80, 90, 100, 120, 140, 160]
- })
- # 绘制折线图
- plt.figure(figsize=(10, 6))
- plot_df.plot(x='Month', y=['Sales', 'Expenses'], kind='line', marker='o')
- plt.title('月度销售与支出趋势')
- plt.xlabel('月份')
- plt.ylabel('金额 (元)')
- plt.grid(True)
- plt.legend(['销售额', '支出额'])
- plt.savefig('line_plot.png', dpi=300, bbox_inches='tight')
- plt.show()
复制代码
绘制柱状图和条形图
- # 绘制柱状图
- plt.figure(figsize=(10, 6))
- plot_df.plot(x='Month', y=['Sales', 'Expenses'], kind='bar')
- plt.title('月度销售与支出对比')
- plt.xlabel('月份')
- plt.ylabel('金额 (元)')
- plt.legend(['销售额', '支出额'])
- plt.grid(True, axis='y')
- plt.savefig('bar_plot.png', dpi=300, bbox_inches='tight')
- plt.show()
- # 绘制水平条形图
- plt.figure(figsize=(10, 6))
- plot_df.plot(x='Month', y=['Sales', 'Expenses'], kind='barh')
- plt.title('月度销售与支出对比')
- plt.xlabel('金额 (元)')
- plt.ylabel('月份')
- plt.legend(['销售额', '支出额'])
- plt.grid(True, axis='x')
- plt.savefig('barh_plot.png', dpi=300, bbox_inches='tight')
- plt.show()
复制代码
使用Seaborn进行高级可视化
Seaborn是基于Matplotlib的高级可视化库,提供了更美观的统计图表:
- import seaborn as sns
- # 设置Seaborn风格
- sns.set(style="whitegrid")
- # 创建更复杂的数据
- complex_df = pd.DataFrame({
- 'Day': ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] * 4,
- 'Product': ['A'] * 7 + ['B'] * 7 + ['C'] * 7 + ['D'] * 7,
- 'Sales': np.random.randint(10, 100, 28)
- })
- # 绘制分组条形图
- plt.figure(figsize=(12, 6))
- sns.barplot(x='Day', y='Sales', hue='Product', data=complex_df)
- plt.title('每日各产品销售额')
- plt.xlabel('星期')
- plt.ylabel('销售额')
- plt.legend(title='产品')
- plt.savefig('grouped_bar.png', dpi=300, bbox_inches='tight')
- plt.show()
- # 绘制热力图
- # 创建相关系数矩阵
- corr_df = pd.DataFrame(np.random.randn(10, 5), columns=['A', 'B', 'C', 'D', 'E'])
- corr_matrix = corr_df.corr()
- plt.figure(figsize=(10, 8))
- sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', vmin=-1, vmax=1)
- plt.title('变量相关系数热力图')
- plt.savefig('heatmap.png', dpi=300, bbox_inches='tight')
- plt.show()
复制代码
使用Plotly创建交互式图表
Plotly可以创建交互式图表,适合在Web应用中使用:
- import plotly.express as px
- # 创建交互式折线图
- fig = px.line(plot_df, x='Month', y=['Sales', 'Expenses'],
- title='月度销售与支出趋势',
- labels={'value': '金额 (元)', 'variable': '类别'},
- line_shape='linear')
- fig.update_layout(legend_title_text='类别')
- fig.write_html('interactive_line.html')
- fig.show()
复制代码
高级输出技巧
条件格式化
Pandas的style属性支持条件格式化,可以根据数据值应用不同的样式:
- # 创建示例数据
- condition_df = pd.DataFrame({
- 'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
- 'Score': [85, 92, 78, 88, 95],
- 'Grade': ['B', 'A', 'C', 'B', 'A']
- })
- # 高亮显示最高分
- styled_df = condition_df.style.highlight_max(subset=['Score'], color='lightgreen')
- # 高亮显示最低分
- styled_df = styled_df.highlight_min(subset=['Score'], color='lightcoral')
- # 根据条件设置单元格背景色
- def highlight_scores(val):
- if val >= 90:
- return 'background-color: lightgreen'
- elif val >= 80:
- return 'background-color: lightyellow'
- else:
- return 'background-color: lightcoral'
- styled_df = styled_df.applymap(highlight_scores, subset=['Score'])
- # 显示格式化后的DataFrame
- display(styled_df)
复制代码
数据条和色阶
使用数据条和色阶可以直观地展示数据的大小关系:
- # 添加数据条
- styled_df = condition_df.style.bar(subset=['Score'], color='#5fba7d')
- # 添加色阶
- styled_df = condition_df.style.background_gradient(subset=['Score'], cmap='Blues')
- # 显示格式化后的DataFrame
- display(styled_df)
复制代码
自定义样式函数
你可以定义自己的样式函数,实现更复杂的格式化效果:
- # 定义自定义样式函数
- def style_negative(v, props=''):
- return props if v < 0 else None
- def highlight_max(s, props=''):
- return np.where(s == np.nanmax(s.values), props, '')
- # 创建包含正负数的数据
- custom_df = pd.DataFrame({
- 'A': [1, 2, -3, 4, -5],
- 'B': [-1, 2, 3, -4, 5],
- 'C': [1, -2, 3, -4, 5]
- })
- # 应用自定义样式
- styled_df = custom_df.style.applymap(style_negative, props='color:red;')\
- .apply(highlight_max, props='color:white;background-color:darkblue', axis=0)
- # 显示格式化后的DataFrame
- display(styled_df)
复制代码
实战案例
案例1:销售数据分析与报告
假设你有一个销售数据集,需要分析并生成报告:
- # 创建销售数据
- np.random.seed(42)
- dates = pd.date_range('2023-01-01', periods=90)
- products = ['Product A', 'Product B', 'Product C', 'Product D']
- regions = ['North', 'South', 'East', 'West']
- sales_data = []
- for date in dates:
- for product in products:
- for region in regions:
- sales_data.append({
- 'Date': date,
- 'Product': product,
- 'Region': region,
- 'Sales': np.random.randint(100, 1000),
- 'Profit': np.random.randint(10, 100)
- })
- sales_df = pd.DataFrame(sales_data)
- # 添加月份和星期几
- sales_df['Month'] = sales_df['Date'].dt.month_name()
- sales_df['Weekday'] = sales_df['Date'].dt.day_name()
- # 显示数据前几行
- display(sales_df.head())
复制代码- # 按产品统计总销售额和利润
- product_stats = sales_df.groupby('Product').agg({
- 'Sales': ['sum', 'mean', 'std'],
- 'Profit': ['sum', 'mean', 'std']
- }).round(2)
- # 重命名列
- product_stats.columns = ['Total Sales', 'Avg Sales', 'Std Sales',
- 'Total Profit', 'Avg Profit', 'Std Profit']
- # 添加样式
- styled_product_stats = product_stats.style.background_gradient(cmap='Blues')\
- .format({'Total Sales': '${:,.0f}',
- 'Avg Sales': '${:,.0f}',
- 'Std Sales': '${:,.0f}',
- 'Total Profit': '${:,.0f}',
- 'Avg Profit': '${:,.0f}',
- 'Std Profit': '${:,.0f}'})\
- .set_caption("产品销售统计")
- # 显示统计结果
- display(styled_product_stats)
复制代码- # 按日期汇总销售数据
- daily_sales = sales_df.groupby('Date').agg({
- 'Sales': 'sum',
- 'Profit': 'sum'
- }).reset_index()
- # 绘制时间序列图
- plt.figure(figsize=(12, 6))
- plt.plot(daily_sales['Date'], daily_sales['Sales'], label='销售额')
- plt.plot(daily_sales['Date'], daily_sales['Profit'], label='利润')
- plt.title('每日销售额与利润趋势')
- plt.xlabel('日期')
- plt.ylabel('金额')
- plt.legend()
- plt.grid(True)
- plt.xticks(rotation=45)
- plt.tight_layout()
- plt.savefig('daily_sales_trend.png', dpi=300, bbox_inches='tight')
- plt.show()
复制代码- # 产品-区域交叉分析
- product_region = sales_df.pivot_table(
- values='Sales',
- index='Product',
- columns='Region',
- aggfunc='sum'
- )
- # 添加样式
- styled_product_region = product_region.style.background_gradient(cmap='Blues')\
- .format('${:,.0f}')\
- .set_caption("产品-区域销售额交叉表")
- # 显示交叉表
- display(styled_product_region)
- # 绘制热力图
- plt.figure(figsize=(10, 8))
- sns.heatmap(product_region, annot=True, fmt='.0f', cmap='Blues', linewidths=.5)
- plt.title('产品-区域销售额热力图')
- plt.xlabel('区域')
- plt.ylabel('产品')
- plt.tight_layout()
- plt.savefig('product_region_heatmap.png', dpi=300, bbox_inches='tight')
- plt.show()
复制代码
案例2:金融数据分析与可视化
假设你有一组股票数据,需要进行分析和可视化:
- # 创建股票数据
- np.random.seed(42)
- dates = pd.date_range('2023-01-01', periods=252) # 一年的交易日
- symbols = ['AAPL', 'MSFT', 'GOOGL', 'AMZN']
- # 生成随机价格走势
- base_prices = {'AAPL': 150, 'MSFT': 250, 'GOOGL': 100, 'AMZN': 120}
- stock_data = []
- for date in dates:
- for symbol in symbols:
- if date == dates[0]:
- price = base_prices[symbol]
- else:
- prev_price = [d['Close'] for d in stock_data if d['Symbol'] == symbol and d['Date'] == date - pd.Timedelta(days=1)][0]
- change = np.random.normal(0, 0.02) # 2%的标准差
- price = prev_price * (1 + change)
-
- volume = np.random.randint(1000000, 10000000)
-
- stock_data.append({
- 'Date': date,
- 'Symbol': symbol,
- 'Open': price * (1 + np.random.normal(0, 0.005)),
- 'High': price * (1 + abs(np.random.normal(0, 0.01))),
- 'Low': price * (1 - abs(np.random.normal(0, 0.01))),
- 'Close': price,
- 'Volume': volume
- })
- stock_df = pd.DataFrame(stock_data)
- # 显示数据前几行
- display(stock_df.head())
复制代码- # 计算每日收益率
- stock_df['Return'] = stock_df.groupby('Symbol')['Close'].pct_change()
- # 计算移动平均线
- for window in [5, 10, 20, 50]:
- stock_df[f'MA_{window}'] = stock_df.groupby('Symbol')['Close'].transform(lambda x: x.rolling(window).mean())
- # 计算相对强弱指数 (RSI)
- def calculate_rsi(data, window=14):
- delta = data.diff()
- gain = delta.where(delta > 0, 0)
- loss = -delta.where(delta < 0, 0)
-
- avg_gain = gain.rolling(window).mean()
- avg_loss = loss.rolling(window).mean()
-
- rs = avg_gain / avg_loss
- rsi = 100 - (100 / (1 + rs))
-
- return rsi
- stock_df['RSI'] = stock_df.groupby('Symbol')['Close'].transform(calculate_rsi)
- # 显示添加指标后的数据
- display(stock_df.head(10))
复制代码- # 选择一只股票进行详细分析
- aapl_df = stock_df[stock_df['Symbol'] == 'AAPL'].copy()
- # 绘制K线图和移动平均线
- plt.figure(figsize=(14, 8))
- # 绘制K线图
- for i in range(len(aapl_df)):
- if aapl_df.iloc[i]['Close'] >= aapl_df.iloc[i]['Open']:
- color = 'green'
- else:
- color = 'red'
-
- plt.plot([aapl_df.iloc[i]['Date'], aapl_df.iloc[i]['Date']],
- [aapl_df.iloc[i]['Low'], aapl_df.iloc[i]['High']],
- color=color, linewidth=0.6)
-
- plt.bar(aapl_df.iloc[i]['Date'],
- aapl_df.iloc[i]['Close'] - aapl_df.iloc[i]['Open'],
- bottom=aapl_df.iloc[i]['Open'],
- color=color, width=0.6)
- # 绘制移动平均线
- plt.plot(aapl_df['Date'], aapl_df['MA_5'], label='MA5', alpha=0.7)
- plt.plot(aapl_df['Date'], aapl_df['MA_10'], label='MA10', alpha=0.7)
- plt.plot(aapl_df['Date'], aapl_df['MA_20'], label='MA20', alpha=0.7)
- plt.plot(aapl_df['Date'], aapl_df['MA_50'], label='MA50', alpha=0.7)
- plt.title('AAPL股价走势与移动平均线')
- plt.xlabel('日期')
- plt.ylabel('价格 ($)')
- plt.legend()
- plt.grid(True)
- plt.xticks(rotation=45)
- plt.tight_layout()
- plt.savefig('aapl_candlestick.png', dpi=300, bbox_inches='tight')
- plt.show()
复制代码- # 计算每只股票的累计收益率
- stock_df['Cum_Return'] = stock_df.groupby('Symbol')['Return'].transform(lambda x: (1 + x).cumprod())
- # 绘制累计收益率比较
- plt.figure(figsize=(14, 8))
- for symbol in symbols:
- symbol_data = stock_df[stock_df['Symbol'] == symbol]
- plt.plot(symbol_data['Date'], symbol_data['Cum_Return'], label=symbol)
- plt.title('股票累计收益率比较')
- plt.xlabel('日期')
- plt.ylabel('累计收益率')
- plt.legend()
- plt.grid(True)
- plt.xticks(rotation=45)
- plt.tight_layout()
- plt.savefig('cumulative_returns.png', dpi=300, bbox_inches='tight')
- plt.show()
- # 计算相关系数矩阵
- returns_pivot = stock_df.pivot_table(index='Date', columns='Symbol', values='Return')
- corr_matrix = returns_pivot.corr()
- # 绘制相关系数热力图
- plt.figure(figsize=(10, 8))
- sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', vmin=-1, vmax=1)
- plt.title('股票收益率相关系数矩阵')
- plt.tight_layout()
- plt.savefig('correlation_matrix.png', dpi=300, bbox_inches='tight')
- plt.show()
复制代码
总结与展望
本文全面介绍了Pandas结果输出的各种方法和技巧,从基础的打印显示到高级的可视化呈现。我们学习了如何:
1. 使用Pandas的基础输出方法,包括print、display和控制显示选项
2. 对数据进行格式化,包括数字、日期、字符串等
3. 将数据导出为各种格式,如CSV、Excel、HTML、JSON等
4. 使用Matplotlib、Seaborn和Plotly进行数据可视化
5. 应用高级输出技巧,如条件格式化、数据条、色阶等
6. 通过实战案例展示了Pandas结果输出的最佳实践
随着数据科学和人工智能的发展,Pandas作为Python数据分析的核心库,其结果输出功能也在不断演进。未来,我们可以期待:
1. 更丰富的可视化选项,包括3D可视化和动态图表
2. 更好的交互式输出功能,使数据分析结果更加生动
3. 与更多前端技术的集成,使Pandas结果能够无缝嵌入Web应用
4. 更智能的自动报告生成功能,减少手动编写报告的工作量
掌握Pandas结果输出技巧,不仅能让你的数据处理成果更加完美呈现,还能提高数据分析的效率和影响力。希望本文能帮助你更好地利用Pandas进行数据分析和结果展示,让你的数据故事更加生动有力。
版权声明
1、转载或引用本网站内容(一文掌握Pandas结果输出让你的数据处理成果完美呈现)须注明原网址及作者(威震华夏关云长),并标明本网站网址(https://pixtech.cc/)。
2、对于不当转载或引用本网站内容而引起的民事纷争、行政处理或其他损失,本网站不承担责任。
3、对不遵守本声明或其他违法、恶意使用本网站内容者,本网站保留追究其法律责任的权利。
本文地址: https://pixtech.cc/thread-40685-1-1.html
|
|