【发布时间】:2019-03-14 01:44:51
【问题描述】:
我有大约 80 个结构相似的 csv 文件(相同的列名和相同的行号),我想从中获取整个文件集中每个单元格中的最大值。
我现在的想法是将它们加载到列表中然后进行比较,但是我在从嵌套数据框中检索单元格值时遇到了问题。
这是在数据框列表中加载 csv 的代码:
import glob
allFiles = glob.glob("./*.txt")
results = [None]*len(allFiles)
i=0
for file_ in allFiles:
results[i] = pd.read_csv(file_, sep = "\t")
i=i+1
并且,作为一个例子,让我们尝试比较这两个文件文件:
a.txt
t a b
0 1 2
1 3 4
2 5 6
b.txt
t a b
0 1 3
1 0 2
2 7 9
结果列表中的每个元素都是一个数据框:
>> results[i].info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 1 columns):
t a b 3 non-null object
dtypes: object(1)
我想在每个单元格中找到两个数据帧的最大值,并将另一个数据帧作为最终输出,在每个位置都有对应于该位置的最大值,在这种情况下会导致:
t a b
0 1 3
1 3 4
2 7 9
我怎样才能做到这一点?
或者也许有更好的方法来解决整个问题?
谢谢
【问题讨论】:
-
没有minimal reproducible example 不清楚你在问什么。您发布的代码似乎与实际问题完全无关(比较来自不同数据框的元素)。给我们一些示例数据框和您想要的输出。
-
由于我无法访问列出的数据框中的元素,因此我没有设法编写任何代码进行比较。现在,我添加了我用作示例的两个 csv 文件。希望现在更清楚了
-
感谢您提供示例数据框。 “我无法访问里面的元素”仍然含糊不清。你想访问哪些值,你想用它们做什么?
-
我想获得,对于数据框中的每个单元格,考虑到列表中存在的所有数据框的最大值
-
酷,现在我们有一个可以回答的问题!
标签: python python-3.x pandas list dataframe