目次
2. resample を使用してデータをリサンプリングします
4. nlargest と nsmallest を使用して最大値と最小値の演算を実行します
6. stack と unstack を使用して、スタック操作とアンスタック操作を実行します。
1.セクシーオペレーション
1.shift
ディスプレイスメント操作を使用する
DataFrame のメソッドはshift
、指定された行数だけデータを上または下にシフトできます。
import pandas as pd
import numpy as np
# 创建一个包含NaN值的DataFrame
df = pd.DataFrame({'A': [1, 2, np.nan, 4]})
print(df)
# 使用shift方法向上位移一行,将NaN值填充到第一行
result = df['A'].shift(-1)
print(result) # 输出Series([2.0, nan, 4.0, nan])
2.resample
データのリサンプリングを使用する
DataFrame のメソッドはresample
、指定された時間間隔に従ってデータをリサンプリングでき、時系列データの処理によく使用されます。
import pandas as pd
import numpy as np
# 创建一个时间序列DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5]}, index=pd.date_range('2023-01-01', periods=5))
print(df)
# 使用resample方法按天进行重采样,采用平均值作为采样值
result = df.resample('D').mean()
print(result) # 输出DataFrame({'A': [1.5, 2.5, 3.5, 4.5]})
3.expanding
累積計算演算を実行するために使用します
DataFrame のメソッドはexpanding
データに対して累積計算を実行でき、時系列データの処理によく使用されます。
import pandas as pd
import numpy as np
# 创建一个时间序列DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5]}, index=pd.date_range('2023-01-01', periods=5))
print(df)
# 使用resample方法按天进行重采样,采用平均值作为采样值
result = df.resample('D').mean()
print(result) # 输出DataFrame({'A': [1.5, 2.5, 3.5, 4.5]})
4.nlargest
と を使用してnsmallest
最大値と最小値の演算を実行します
DataFrame のnlargest
sumメソッドはnsmallest
、最大の N 値と最小の N 値を見つけることができます。
import pandas as pd
import numpy as np
# 创建一个DataFrame
df = pd.DataFrame({'A': [3, 1, 2], 'B': [6, 4, 5]})
print(df)
# 使用nlargest方法找出B列最大的2个值
result = df['B'].nlargest(2)
print(result) # 输出Series([6, 5])
# 使用nsmallest方法找出A列最小的2个值
result = df['A'].nsmallest(2)
print(result) # 输出Series([1, 2])
5.マッピング操作の使用map
と実行applymap
DataFrame のメソッドはmap
列をマップでき、applymap
メソッドは DataFrame 全体をマップできます。
import pandas as pd
import numpy as np
# 创建一个DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df)
# 使用map方法将A列的值映射为新的值
mapping_dict = {1: 'one', 2: 'two', 3: 'three'}
result = df['A'].map(mapping_dict)
print(result) # 输出Series(['one', 'two', 'three'])
# 使用applymap方法将整个DataFrame的值映射为新的值
mapping_func = lambda x: x * 2
result = df.applymap(mapping_func)
print(result) # 输出DataFrame({'A': [2, 4, 6], 'B': [8, 10, 12]})
6.stack
と を使用してunstack
スタッキングおよびアンスタッキング操作を実行します
DataFrame のメソッドはstack
データの列を行に変換でき、unstack
メソッドはデータの行を列に変換できます。
import pandas as pd
import numpy as np
# 创建一个多重索引的DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c'], columns=['x', 'y'])
print(df)
# 使用stack方法将数据的列转换为行
result = df.stack()
print(result) # 输出Series([1, 4, 2, 5, 3, 6], index=MultiIndex([('a', 'x'), ('a', 'y'), ('b', 'x'), ('b', 'y'), ('c', 'x'), ('c', 'y')], names=['index', 'columns']))
# 使用unstack方法将数据的行转换为列
result = df.unstack()
print(result) # 输出DataFrame({'x': [1, 2, 3], 'y': [4, 5, 6]})
7.rolling
スライディングウィンドウ操作を使用する
DataFrame のメソッドはrolling
スライディング ウィンドウ操作を実行でき、データの処理と分析に一般的に使用されます。
import pandas as pd
import numpy as np
# 创建一个DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5]})
print(df)
# 使用rolling方法进行滑动窗口操作,窗口大小为3,并计算每个窗口内的平均值
result = df.rolling(window=3).mean()
print(result) # 输出DataFrame({'A': [nan, nan, 2.0, 3.0, 4.0]})
8.replace
交換操作を実行するために使用します
DataFrame のメソッドは、replace
指定された値に対して置換操作を実行できます。
import pandas as pd
import numpy as np
# 创建一个DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': ['foo', 'bar', 'foo', 'bar', 'foo']})
print(df)
# 使用replace方法将B列中的'foo'替换为'baz'
result = df.replace({'B': {'foo': 'baz'}})
print(result) # 输出DataFrame({'A': [1, 2, 3, 4, 5], 'B': ['baz', 'bar', 'baz', 'bar', 'baz']})
9.melt
再形成操作を実行するために使用します
DataFrame のメソッドmelt
は、データを再形成し、ワイド形式のデータをデータの処理や分析によく使用される長い形式に変換できます。
import pandas as pd
import numpy as np
# 创建一个宽格式的DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
print(df)
# 使用melt方法将数据进行重塑操作,将宽格式的数据转换为长格式
result = df.melt()
print(result) # 输出DataFrame({'A': [1, 2, 3, 1, 2, 3, 1, 2, 3], 'variable': ['B', 'B', 'B', 'C', 'C', 'C', 'B', 'B', 'B'], 'value': [4, 5, 6, 7, 8, 9, 4, 5, 6]})
10.agg
集計操作を使用する
DataFrame のメソッドagg
は、指定された列に対して集計操作を実行し、複数の値を 1 つの値に結合することができ、データの処理や分析によく使用されます。
import pandas as pd
import numpy as np
# 创建一个DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50]})
print(df)
# 使用agg方法将A列和B列分别进行求和和平均值操作
result = df.agg({'A': 'sum', 'B': 'mean'})
print(result) # 输出DataFrame({'A': [15], 'B': [30]})
2. 焦点を当てる
Weixin パブリック アカウントの Python リスク管理モデルとデータ分析に従ってください。さらに多くの理論とコード共有があなたを待っています。