我想要合并两个DataFrame:
DataFrame A columns: index, userid, locale (2000 rows)
DataFrame B columns: index, userid, age (300 rows)
Run Code Online (Sandbox Code Playgroud)
当我执行以下操作时:
pd.merge(A, B, on='userid', how='outer')
Run Code Online (Sandbox Code Playgroud)
我有一个包含以下列的DataFrame:
index,Unnamed:0,userid,locale,age
的index列和Unnamed:0列是相同的.我想该Unnamed:0列是DataFrame B的索引列.
我的问题是:Unnamed在合并两个DF时有没有办法避免这个列?
之后我可以删除Unnamed专栏,但只是想知道是否有更好的方法来做到这一点.
总之,您正在做的就是将索引保存到文件中,并且当您从文件中读回时,以前另存为的列将作为index常规列加载。
有几种方法可以解决此问题:
方法1
pandas.DataFrame将磁盘保存到磁盘时,请使用index=False以下命令:
df.to_csv(path, index=False)
Run Code Online (Sandbox Code Playgroud)
方法2
从文件读取时,您可以定义将用作索引的列,如下所示:
df = pd.read_csv(path, index_col='index')
Run Code Online (Sandbox Code Playgroud)
方法3
如果方法#2由于某种原因不适合您,则以后总是可以将列设置为用作索引,如下所示:
df.set_index('index', inplace=True)
Run Code Online (Sandbox Code Playgroud)
在这之后,您的数据声望应如下所示:
userid locale age
index
0 A1092 EN-US 31
1 B9032 SV-SE 23
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助。
在将DataFrame保存到CSV文件(df.to_csv('...', index=False))时,或者如果您必须处理无法更改/编辑的CSV文件时,请不要编写索引,请使用usecols参数:
A = pd.read_csv('/path/to/fileA.csv', usecols=['userid','locale'])
Run Code Online (Sandbox Code Playgroud)
为了摆脱Unnamed:0专栏......
| 归档时间: |
|
| 查看次数: |
5552 次 |
| 最近记录: |