我正在嘗試根據用戶輸入設定上限和下限,其中上限是 userinput 10
創建資料框
df = pd.DataFrame({
'VIN':['v1', 'v1', 'v1', 'v1', 'v1', 'v2', 'v2', 'v2', 'v2', 'v2'],
'Revenue':[30, 50, 40, 30, 40, 30, 50, 40, 30, 50],
'Category':['MKL', 'GKL','GKL', 'UKL', 'MKL', 'MKL', 'GKL', 'GKL', 'UKL', 'MKL'],
'Age':[64, 41, 54, 63, 64, 63, 53, 42, 32, 61]
})
print(df)
VIN Revenue Category Age
0 v1 30 MKL 64
1 v1 50 GKL 41
2 v1 40 GKL 54
3 v1 30 UKL 63
4 v1 40 MKL 64
5 v2 30 MKL 63
6 v2 50 GKL 53
7 v2 40 GKL 42
8 v2 30 UKL 32
9 v2 50 MKL 61
我嘗試了下面的代碼,但得到錯誤:('長度必須匹配才能比較',(995,),(1,)):
Age1 = [int(x) for x in input('Please enter Age?= ').split(',')]
dummy=[10]
t2=[x y for x, y in zip(Age1, dummy)]
df = df[(df['Age'] >= Age1) & (df['Age'] <= t2)]
uj5u.com熱心網友回復:
問題是將值存盤在串列中并訪問這些值,在更改查詢以通過 Age1[0] 訪問串列值(串列中的第一個也是唯一的值)之后,該值被正確存盤。您的 zip 函式也停止作業,因為您需要將列包含在方括號中,例如 [Age1]。在每種情況下,您都應該指定使用 [0] 從您存盤結果的串列中獲取第一個值。
該代碼適用于我,并添加了以下內容:
import pandas as pd
df = pd.DataFrame({
'VIN':['v1', 'v1', 'v1', 'v1', 'v1', 'v2', 'v2', 'v2', 'v2', 'v2'],
'Revenue':[30, 50, 40, 30, 40, 30, 50, 40, 30, 50],
'Category':['MKL', 'GKL','GKL', 'UKL', 'MKL', 'MKL', 'GKL', 'GKL', 'UKL', 'MKL'],
'Age':[64, 41, 54, 63, 64, 63, 53, 42, 32, 61]
})
Age1 = [int(x) for x in input('Please enter Age?= ').split(',')]
dummy=[10]
t2=[x y for x, y in zip([Age1[0]], [dummy[0]])]
df = df[(df['Age'] >= Age1[0]) & (df['Age'] <= t2[0])]
print(Age1)
print(df)
[60]
VIN Revenue Category Age
0 v1 30 MKL 64
3 v1 30 UKL 63
4 v1 40 MKL 64
5 v2 30 MKL 63
9 v2 50 MKL 61
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/455770.html
標籤:Python python-3.x 熊猫 列表 数据框
上一篇:從由字串陣列pyspark或python高階函陣列成的列中選擇多個值
下一篇:用字典值替換pandas列值
