pd.unique()函数
时间: 2023-10-13 18:20:34 浏览: 122
`pd.unique()`函数是Pandas库中的一个方法,用于获取一个Series或DataFrame中的唯一值。该方法返回一个包含所有不同值的数组,按照它们在原始Series或DataFrame中的出现顺序排列。
使用示例:
```python
import pandas as pd
# 创建一个Series
s = pd.Series([1, 2, 2, 3, 4, 4, 4, 5])
# 获取唯一值
unique_values = pd.unique(s)
print(unique_values) # 输出 [1 2 3 4 5]
```
相关问题
def dropsame(data): for i in range(data.shape[1]): if pd.unique(data.iloc[:,i])==1: pd.drop(data.iloc[:,i]) dropsame(data) 报错为ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
这个错误是因为在 if 语句中使用了一个数组,而 Python 不知道应该使用数组的哪个元素来进行比较。你可以尝试使用 a.any() 或 a.all() 来解决这个问题。此外,你还需要修改代码中的 pd.drop(),因为它不会修改原始数据。下面是修改后的代码:
```
def dropsame(data):
for i in range(data.shape[1]):
if not pd.Series(data.iloc[:, i]).nunique():
data.drop(data.columns[i], axis=1, inplace=True)
return data
# 示例用法:
import pandas as pd
data = pd.DataFrame({'A': [1, 2, 3], 'B': [1, 1, 1], 'C': [2, 3, 4]})
print(dropsame(data))
```
这里我们使用了 `not pd.Series(data.iloc[:, i]).nunique()` 来判断某一列是否全部相同。如果是,就使用 `data.drop()` 删除该列,并将 `inplace` 参数设置为 `True`,这样就可以直接修改原始数据了。最后,该函数返回修改后的数据。
starbucks = pd.read_csv('C:\\Users\\LENOVO\\Desktop\\实验2\\starbucks.xls',encoding='utf-8') starbucks.head() len(starbucks['Country'].unique()) len(starbucks['City'].unique())
这段代码主要是用来读取名为“starbucks.xls”的CSV文件,并将结果存储到名为“starbucks”的数据框中。具体来说,pd.read_csv()函数用于读取CSV文件,其中包括文件路径和编码方式等参数。接下来,通过调用starbucks.head()函数,查看starbucks数据框中的前5行数据。
接下来,代码中使用了两个len()函数,分别计算了starbucks数据框中“Country”列和“City”列的唯一值的数量。这意味着,该数据框中有多少个不同的国家和城市。需要注意的是,这里的“unique()”函数没有被调用,因为len()函数会自动计算数组的长度,而数组中每个唯一值只会被计算一次。
阅读全文