pandas用法总结 介词介词什么pandas前面?pandas 数据框之前的
了解怎样使用介词为你的 pandas 数据框筛选、索引和操作数据。 介词在 pandas 前面用于过滤行、选取列,或通过提供更有上下文的语义使代码更易读!
直接应用 – 过滤行(Rows)
介词可以帮助快速且简洁地过滤数据框。 下面内容是一些示例:
-
使用
with
:此操作将“选取”对应条件的行。它有助于使代码天然易读!pythonimport pandas as pd
data = ‘col1’: [1, 2, 3, 4], ‘col2’: [‘A’, ‘B’, ‘A’, ‘C’]}df = pd.DataFrame(data)
new_df = df[df[‘col2’] == ‘A’]传统技巧:过滤 col2 为 ‘A’ 的行。new_df_with = df.loc[df[‘col2’] == ‘A’] 更简洁的方式print(new_df_with)
在这个例子中,
df[df['col2'] == 'A']
直接筛选 col2 列值等于 ‘A’ 的那些行,实现了数据框的行子集,简洁地提取数据子集.这就像“列 col2 等于 ‘A’ 的 行”。这种with
类似于一种天然语言表达“在…的前提条件下, 选择出什么数据”! -
使用
over
.用另一个 dataframe 计算值的集合时使用,例如,根据值统计并聚合现有行或列(类似在表格over 的范围).pythonimport pandas as pddf = pd.DataFrame(‘col1’: [1, 1, 2, 2], ‘col2’: [‘A’, ‘B’, ‘A’, ‘C’]})groupby_df= df.groupby(‘col1’).count[‘col2’]groupby_df =df.groupby(‘col1’).agg(‘col2′:’count’})print(groupby_df)
输出, col1 1 has count 2 and col 2 has value count 2
col2
col1
1 2
2 2
通过 计算在 column col1 上 ‘counts’ col2 :“每个 col1 ,对其所有计数进行 count”
这里我们可以说 “为了 按照
col1
列去groupby
,统计各个col2
的总数目 “!
选择列 (Columns) 时的前置用法
对于选择操作,介词会更加重要.
-
使用
of
: 表示特定列名的指定. 帮助说明我们想要选的列.pythonimport pandas as pd
data = ‘col1’: [1, 2, 3], ‘col2’: [‘A’, ‘B’, ‘C’]}df = pd.DataFrame(data)col_to_select = [‘col1’, ‘col2’]selected_columns = df[col_to_select] 传统选方式,选取多列selected_of_colummn = df.loc[:, [‘col1′,’col2’]]选取多列
print(selected_of_colummn)
这种用法, 可描述为: “ 从DataFrame选取 指定的‘列们’”`.选择指定的那几列。 灵活、语义增强.
-
使用
from
. 代表从数据框 “选取” 内容: 虽然和of
语义重合。 为了阅读上的更顺畅也更加灵活pythonimport pandas as pd
data = ‘col1’: [1, 2, 3], ‘col2’: [‘A’, ‘B’, ‘C’]}df = pd.DataFrame(data)
print the column1 values by :select from ‘column_name’
df =df[“col1”].to_listprint(df)
意思是:“ from (来自于) dataframe中” select 列: col1 , select 的数值””:
复杂条件下的运用
介词不仅止于基本选取。 在涉及复杂的条件筛选时也能更准确地表达意图!
- 在 “where“的上下文里”,介词通常更适合 : where 表示对符合条件的元素使用新条件 :”如果 value 匹配where 条件,则从”from 选择符合条件的对象!
pythonimport pandas as pd
data = ‘col1’: [1, 2, 3, 4], ‘col2’: [‘A’, ‘B’, ‘A’, ‘C’]}df = pd.DataFrame(data)
选择col2
等于’A’并且col1
大于1的行: “对于那些满足where条件的行 ,挑选匹配 col1 and col2“
技巧1 混合技巧: 筛选where(col2==’A’),接着在对 col1>1 做行过滤 。
selected_rows = df[(df[‘col2’] == ‘A’) & (df[‘col1’] > 1)]
“ from df where 在满足 col2 为 ‘A’ ,并且 col1 大于 1.”:
print(selected_rows)
介词可以提供精确度,并且以更清晰直观的方式操控 pandas 数据帧。 它就像为数据处理配上导航指南,降低了数据分析的技术壁垒. 使程序更易于被读, 维护与合作, 以方便高效操作!
常见难题和解答
1. pandas 前置使用介词是为了增强代码可读性吗?
是的,它们在一定程度上使代码更清晰,使用类似英语的方式描述逻辑!
2. 在所有情况下都应该在pandas前使用介词吗?
虽然有助于代码更清晰,但在非常简单的情况下可能显得多余。要根据具体情景判断是否使用!
3. 有没有一些pandas的实用工具?
isin
、 between
和 apply
都提供了高质量的,常用的工具!
4. 能用更加灵活的方式代替with
,from
,where
之类方式表达含义的场景吗?
肯定的,使用 lambda 表达式来更精细的操作.也可以与函数配合进行复杂处理
pythondf[df[‘col2’].apply(lambda x: x == ‘A’)]