【发布时间】:2018-10-31 03:19:52
【问题描述】:
我有两个数据框。我想删除两个数据帧中都没有出现索引的行。
以下是数据框的示例:
import pandas as pd
data = {'Correlation': [1.000000, 0.607340, 0.348844]}
df = pd.DataFrame(data, columns=['Correlation'])
df = df.rename(index={0: 'GINI'})
df = df.rename(index={1: 'Central government debt, total (% of GDP)'})
df = df.rename(index={2: 'Grants and other revenue (% of revenue)'})
data_2 = {'Correlation': [1.000000, 0.607340, 0.348844, 0.309390, -0.661046]}
df_2 = pd.DataFrame(data_2, columns=['Correlation'])
df_2 = df_2.rename(index={0: 'GINI'})
df_2 = df_2.rename(index={1: 'Central government debt, total (% of GDP)'})
df_2 = df_2.rename(index={2: 'Grants and other revenue (% of revenue)'})
df_2 = df_2.rename(index={3: 'Compensation of employees (% of expense)'})
df_2 = df_2.rename(index={4: 'Central government debt, total (current LCU)'})
我发现了这个问题:How to remove rows in a Pandas dataframe if the same row exists in another dataframe? 但无法使用它,因为如果索引名称相同,我试图删除它。
我也看到了这个问题:pandas get rows which are NOT in other dataframe,但删除了两个数据框中相等的行,但我也没有发现这很有用。
我想做的是转置然后连接数据框并删除重复的列:
df = df.T
df_2 = df_2.T
df3 = pd.concat([df,df_2],axis = 1)
df3.iloc[: , ~df3.columns.duplicated()]
这样做的问题是它只删除了重复的列之一,但我希望它删除这两列。
非常感谢您对此的任何帮助,干杯。
【问题讨论】: