我正在为pandas中的数据框分配列名,但列名称正在创建新列,如何解决此问题?
现在的数据框如下:
abs_subdv_cd abs_subdv_desc
0 A0001A ASHTON ... NaN
1 A0002A J. AYERS ... NaN
2 A0003A NEWTON ALLSUP ... NaN
3 A0004A M. AUSTIN ... NaN
4 A0005A RICHARD W. ALLEN ... NaN
我想要数据框的样子:
abs_subdv_cd abs_subdv_desc
0 A0001A ASHTON
1 A0002A J. AYERS
2 A0003A NEWTON ALLSUP
3 A0004A M. AUSTIN
4 A0005A RICHARD W. ALLEN
到目前为止代码:
import pandas as pd
###Declaring path###
path = ('file_path')
###Calling file in folder###
appraisal_abstract_subdv = pd.read_table(path + '/2015-07-28_003820_APPRAISAL_ABSTRACT_SUBDV.txt',
encoding = 'iso-8859-1' ,error_bad_lines = False,
names = ['abs_subdv_cd','abs_subdv_desc'])
print(appraisal_abstract_subdv.head())
-edit-
当我尝试appraisal_abstract_subdv.shape时...数据框显示为(4000,1)形状,其中数据有两列。
我正在使用的这个数据示例:
A0001A ASHTON
A0002A J. AYERS
提前谢谢。
答案 0 :(得分:2)
您的数据文件看起来有另一个分隔符(不是TAB,它是pd.read_table()
的默认分隔符),因此请尝试使用:sep='\s+'
或delim_whitespace=True
参数。
为了在读取数据文件后检查列,请执行以下操作:
print(df.columns.tolist())
答案 1 :(得分:1)
pandas中有一个重命名函数可用于获取列名
df.rename(columns={'OldColumn1': 'Newcolumn1', 'OldColumn2': 'Newcolumn2'}, inplace=True)
然后使用这些列名称使用此方法重新命名它们
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
string str = "1,2,2,3,3,3,4,4";
char c;
int num = -1;
for (int i = 0; i < str.length(); ++i) {
if (str[i] == ',') continue;
else {
c = str[i];
if ((c - '0') != num) {
num = c - '0';
cout << num << ",";
}
}
}
cout << '\b';
cout << endl;
return 0;
}