假设如果我有一个包含两列的.csv
文件A, B
那么如果我调用 A 列第 3 行,那么如何打印 B 列第 3 行数据。请帮助我,因为我是代码初学者。
我只想调用一个输入值并从下一列打印相同的行值。
这是我的代码:
如果味精中的"你好":
with open('data.csv', "r") as f:
reader = csv.reader(f)
chat = {}
for row in reader:
key = row[0]
chat[key] = row[1:]
try:
gotreply = chat[msg]
except KeyError:
gotreply = 'null'
print(gotreply)
if gotreply == 'null':
print("Sorry! I didn't understand. I'm still learning.")
else:
print("Input Again")
不知道你到底在问什么,但你可以做
import pandas as pd
foo_df = pd.read_csv('files/example.csv')
if foo_df.A[2] == "c":
print(foo_df.B[2])
我建议熟悉Pandas作为解析数据的优雅方式。
示例.csv:
A,B
a,b
b,c
c,d
d,e
其中 A 和 B 是列名。
pandas.read_csv()
将读取.csv并将其放入数据帧中。查看文档并试一试。
import pandas as pd
foo_df = pd.read_csv('/path/to/example.csv')
print(foo_df)
应该返回
A B
0 a b
1 b c
2 c d
3 d e
从那里开始,只需查看文档即可从数据帧中检索所需的内容。
我也是初学者,这是我在这里的第一篇文章,所以我会尽力帮助你。
首先,我假设您的CSV文件具有标题,并且假设您的标头称为" A"和" B"。
import csv
with open('test.csv', mode='r') as csv_file:
csv_reader = csv.reader(csv_file)
row_count = 1
for i in csv_reader:
if row_count == 4:
print(i[1]) # prints second column of third row
row_count += 1
可能有一种更有效的方法,但我也是游戏的新手。
当我刚开始的时候,我也有一些这样的疑问。熊猫切片将对您有所帮助。
首先将熊猫模块导入为"pd"(将熊猫导入为pd(,因为它是最常用的形式,并且更容易适应。
import pandas as pd
data = [['tom', 10], ['nick', 15], ['juli', 14], ['tony', 12]]
df = pd.DataFrame(data, columns = ['A', 'B'])
这将创建一个示例数据框或简单的"df":
A B
0 tom 10
1 nick 15
2 juli 14
3 tony 12
使用 pandas df.loc 中最常见的切片器之一,您可以获得所需的结果:
df.loc[2,'B']
这将返回您提到的"B"列第 3 行。请记住,在 Python 中,第一个索引从 0 而不是 1 开始。这就是为什么我们使用"2"作为第三行。
希望这对你有帮助。