MF *_*OOM 8 python csv dataframe pandas
我正在尝试将数据集映射到具有不同标题的空白 CSV 文件,因此我实际上是在尝试将数据从一个具有不同标题的 CSV 文件映射到具有不同标题数量并称为不同内容的新 CSV,原因这个问题是不同的,因为列名不一样,但也没有重叠的列。而且我不能用新的标题覆盖数据文件,因为数据文件有其他列包含不相关的数据,我确定我把它复杂化了。
我已经看过这个示例代码,但是我如何更改它,因为这个示例使用一个公共头来连接数据。
a = pd.read_csv("a.csv")
b = pd.read_csv("b.csv")
#a.csv = ID TITLE
#b.csv = ID NAME
b = b.dropna(axis=1)
merged = a.merge(b, on='title')
merged.to_csv("output.csv", index=False)
Run Code Online (Sandbox Code Playgroud)
样本数据
a.csv(空白格式文件,格式必须与此文件匹配):
Headers: TOWN NAME LOCATION HEIGHT STAR
Run Code Online (Sandbox Code Playgroud)
b.csv:
Headers: COUNTRY WEIGHT NAME AGE MEASUREMENT
Data: UK, 150lbs, John, 6, 6ft
Run Code Online (Sandbox Code Playgroud)
预期输出文件:
Headers: TOWN NAME LOCATION HEIGHT STAR
Data: (Blank) John, UK, 6ft (Blank)
Run Code Online (Sandbox Code Playgroud)
从您的示例来看,除了merge
. 这是在其merge
本身之前最容易完成的。
# Read the csv files
dfA = pd.read_csv("a.csv")
dfB = pd.read_csv("b.csv")
# Rename the columns of b.csv that should match the ones in a.csv
dfB = dfB.rename(columns={'MEASUREMENT': 'HEIGHT', 'COUNTRY': 'LOCATION'})
# Merge on all common columns
df = pd.merge(dfA, dfB, on=list(set(dfA.columns) & set(dfB.columns)), how='outer')
# Only keep the columns that exists in a.csv
df = df[dfA.columns]
# Save to a new csv
df.to_csv("output.csv", index=False)
Run Code Online (Sandbox Code Playgroud)
这应该会给你你想要的东西。
归档时间: |
|
查看次数: |
2807 次 |
最近记录: |