如何从特定行获取数据?
How to get data from specific row?
我还是 python 的新手,我需要帮助。
我有几个 csv 文件。其中一个看起来像这样:
test.csv
Name,Colour,ID
Fiona,Brown,23
Alex,Brown,24
Mary,Pink,25
Jane,Yellow,26
John,Pink,27
Emma,Yellow,28
另一个文件如下所示:
test2.csv
Name,Colour,ID
Gwen,Black,29
Peter,Brown,30
Stranger,Black,31
Abou,Yellow,32
Jonah,Yello,33
Kim,Yellow,34
我正在尝试检查文件中是否存在某种颜色并提取其行。
这是我试过的。
import pandas as pd
#User input file name
filename = input("Enter file name: ")
#Open and read CSV file
file = pd.read_csv(filename + ".csv")
#Check if black exist or not
if 'Black' in file:
bl = file.loc["Black"]
print("Yes")
else:
print("No Black")
if 'Brown' in file:
Brown = file.loc["Brown"]
print(Brown)
else:
print("No brown")
if 'Pink' in file:
Pink = file.loc["Pink"]
print(Pink)
else:
print("No Pink")
if 'Yellow' in file:
Yellow = file.loc["Yellow"]
print(Yellow)
else:
print("No Yellow")
这是我 运行 我的代码
时得到的输出
Enter file name: test
No Black
No brown
No Pink
No Yellow
有什么建议可以让我正确地得到输出吗?
file
是一个数据框。如果你这样做 if 'Black' in file
它只会搜索列名(['Name', 'Colour', 'ID']
)。
您需要更具体地说明要搜索的位置(即要搜索的列)。
要在颜色列中查找 'black'
,请使用:
if 'black' in file['Colour'].values:
bl = file.loc[file['Colour'] == "Black"]
print("Yes")
如果要使用 in
语句,必须将此列(系列)转换为列表:
COLORS = ['Black', 'Brown', 'Pink', 'Yellow']
filename = input('Enter file name: ')
df = pd.read_csv(f'{filename}.csv')
colors = df['Colour'].tolist()
for color in COLORS:
print(f'{color}' if color in colors else f'no {color}')
输出:
Enter file name: test
no Black
Brown
Pink
Yellow
我还是 python 的新手,我需要帮助。
我有几个 csv 文件。其中一个看起来像这样:
test.csv
Name,Colour,ID
Fiona,Brown,23
Alex,Brown,24
Mary,Pink,25
Jane,Yellow,26
John,Pink,27
Emma,Yellow,28
另一个文件如下所示:
test2.csv
Name,Colour,ID
Gwen,Black,29
Peter,Brown,30
Stranger,Black,31
Abou,Yellow,32
Jonah,Yello,33
Kim,Yellow,34
我正在尝试检查文件中是否存在某种颜色并提取其行。
这是我试过的。
import pandas as pd
#User input file name
filename = input("Enter file name: ")
#Open and read CSV file
file = pd.read_csv(filename + ".csv")
#Check if black exist or not
if 'Black' in file:
bl = file.loc["Black"]
print("Yes")
else:
print("No Black")
if 'Brown' in file:
Brown = file.loc["Brown"]
print(Brown)
else:
print("No brown")
if 'Pink' in file:
Pink = file.loc["Pink"]
print(Pink)
else:
print("No Pink")
if 'Yellow' in file:
Yellow = file.loc["Yellow"]
print(Yellow)
else:
print("No Yellow")
这是我 运行 我的代码
时得到的输出Enter file name: test
No Black
No brown
No Pink
No Yellow
有什么建议可以让我正确地得到输出吗?
file
是一个数据框。如果你这样做 if 'Black' in file
它只会搜索列名(['Name', 'Colour', 'ID']
)。
您需要更具体地说明要搜索的位置(即要搜索的列)。
要在颜色列中查找 'black'
,请使用:
if 'black' in file['Colour'].values:
bl = file.loc[file['Colour'] == "Black"]
print("Yes")
如果要使用 in
语句,必须将此列(系列)转换为列表:
COLORS = ['Black', 'Brown', 'Pink', 'Yellow']
filename = input('Enter file name: ')
df = pd.read_csv(f'{filename}.csv')
colors = df['Colour'].tolist()
for color in COLORS:
print(f'{color}' if color in colors else f'no {color}')
输出:
Enter file name: test
no Black
Brown
Pink
Yellow