Имам два панда данни: един:
import pandas as pd
df1 = pd.read_csv("filename1.csv")
df1
A B
0 1 22
1 2 15
2 5 99
3 6 1
....
и две
df2 = pd.read_csv("filename1.csv")
df2
A B
0 1 6
1 3 52
2 4 15
3 5 62
...
Бих искал да обединя тези информационни рамки в единна рамка с колони A
като индекс за този нов информационен кадър.
Колоните са имена на файлове, редовете са стойностите за "А".
Ако стойностите за този индекс не съществуват, NaN
тогава съществува. Имената на графите трябва да са имената на файловете от * csv по-горе.
filename1 filename2
1 22 6
2 15 NaN
3 NaN 52
4 NaN 15
5 99 62
6 1 NaN
Как се прави това? За два файла може да се използва pandas.merge()
, но какво представляват десетките от оригиналните информационни рамки?
Отговори:
2 за отговор № 1files = ["file1", "file2"]
def read(f):
f = f + ".csv"
df = pd.read_csv(f, usecols=["A", "B"])
return df.drop_duplicates(subset=["A"]).set_index("A").B
pd.concat([read(f) for f in files], axis=1, keys=files)