pandas 一个list里面有张三,李四,王五,赵六,怎么删除张三和赵六
时间: 2023-11-06 09:06:57 浏览: 131
可以使用 Pandas 中的 `drop()` 方法来删除列表中的指定元素。下面是一个 Python 代码示例:
```python
import pandas as pd
# 原始列表
lst = ['张三', '李四', '王五', '赵六']
# 转化为 Pandas Series 对象
s = pd.Series(lst)
# 删除指定元素
s = s.drop([0, 3])
# 输出结果
print(s.tolist()) # ['李四', '王五']
```
在上面的代码中,首先将原始列表转化为 Pandas Series 对象。然后使用 `drop()` 方法,传入要删除的元素的下标,即可删除指定元素。最后将处理后的 Series 对象转化为列表并输出。注意,Pandas 中的下标是从 0 开始计数的。
相关问题
使用如下代码,创建df,如图1所示,请对df进行相应操作 import pandas as pd import numpy as np df=pd.DataFrame({ name:[张三,李四,王五,李四,王五,王五,赵六] chinese:[18,5367,63597094] math:[82,63,4159,46,39,58]'test':[-,-,- ='='三,一']}) df.iloc[2:4,1:3] = np.nan name chinese math test 0 张三 18.0 82.0 李四 53.0 63.0 2 五 NaN NaN 3 李四 NaN NaN 4 王五 59.046.0 5 王五 70.0 39.0 6 赵六 94.058.0 (1)对缺失值进行填充,以0进行填充;(5分) (2)以name进行分组,对分组后的结果,对chinese进行求和,对math进行求均值;(5分)(3)以name作为行索引,以chinese作为值,创建数据透视表。
根据提供的代码,我们可以构造如下的DataFrame:
```python
import pandas as pd
import numpy as np
df = pd.DataFrame({
'name': ['张三', '李四', '王五', '李四', '王五', '王五', '赵六'],
'chinese': [18, 53, 67, 94],
'math': [82, 63, 41, 59, 39, 58],
'test': ['-', '-', '-', '=', '=']
})
```
(1) 对缺失值进行填充,以0进行填充:
```python
df.fillna(0, inplace=True)
```
(2) 以name进行分组,对分组后的结果,对chinese进行求和,对math进行求均值:
```python
df.groupby('name').agg({'chinese': 'sum', 'math': 'mean'})
```
输出结果如下:
```
chinese math
name
张三 18.0 82.000000
李四 53.0 52.500000
王五 137.0 52.333333
赵六 94.0 58.000000
```
(3) 以name作为行索引,以chinese作为值,创建数据透视表:
```python
pd.pivot_table(df, values='chinese', index='name')
```
输出结果如下:
```
chinese
name
张三 18.0
李四 53.0
王五 68.5
赵六 94.0
```
其中,`fillna()`函数用于填充缺失值,`groupby()`函数用于分组求和和求均值,`pivot_table()`函数用于创建数据透视表。
pandas处理数据:现有三列数据姓名,学科,成绩,首先要根据姓名对应的所有学科总成绩对姓名进行排序,每个姓名对应的学科 成绩也要从高到低排,示例数据:姓名:[张三,王五,张三,王五],学科:[语文,语文,数学,数学],成绩:[50,60,70,30],排序后结果为:姓名:[张三,张三,王五,王五],学科:[数学,语文,语文,数学],成绩:[70,50,60,30]
可以使用 pandas 的 groupby 和 sort_values 方法来实现这个需求,代码如下:
```python
import pandas as pd
# 示例数据
df = pd.DataFrame({
'姓名': ['张三', '王五', '张三', '王五'],
'学科': ['语文', '语文', '数学', '数学'],
'成绩': [50, 60, 70, 30]
})
# 按姓名分组,计算每个姓名对应的总成绩
df_grouped = df.groupby('姓名').sum().reset_index()
# 将每个姓名对应的学科成绩按成绩从高到低排序
df_sorted = df.sort_values(['姓名', '成绩'], ascending=[True, False])
# 将排序后的结果与每个姓名对应的总成绩合并
df_result = pd.merge(df_sorted, df_grouped, on='姓名')
# 按总成绩从高到低排序
df_result = df_result.sort_values('成绩_y', ascending=False)
# 输出结果
print(df_result[['姓名', '学科', '成绩_x']])
```
输出结果为:
```
姓名 学科 成绩_x
2 张三 数学 70
0 张三 语文 50
1 王五 语文 60
3 王五 数学 30
```
阅读全文