我有多个数据帧,我希望通过连接多个数据帧来获取result_df。对此有何建议?
我正在使用以下代码,但我没有收到错误: 标记数据时出错。 C错误:第4行预期有1个字段,见5
<TextView
android:id="@+id/tvFbShare"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:padding="@dimen/_6sdp" // SDP used
android:text="@string/str_share_on_facebook"
android:textColor="@color/fb_blue"
android:textSize="14sp" // SP used />
答案 0 :(得分:1)
我认为需要error_bad_lines=False
并且第一个concat
不是必需的:
list_ = []
if os.path.exists(csvfile):
list_.append(pd.read_csv(csvfile, sep=',', encoding='utf-8', error_bad_lines=False))
frame = pd.concat(list_,ignore_index=True)
另一种解决方案:
import glob
files = glob.glob('files/*.csv')
list_ = [pd.read_csv(fp, encoding='utf-8', error_bad_lines=False) for fp in files]
df = pd.concat(list_, ignore_index=True)
编辑:对于查找有问题的行,可以检查具有行长度的标题长度:
import csv
with open('a.csv') as csv_file:
reader = csv.reader(csv_file, delimiter=',')
len_header = len(next(reader))
for row in reader:
if (len(row) != len_header):
print ("Length of row is: %r" % len(row) )
print (row)
Length of row is: 3
['4', '5', '20']
Length of row is: 4
['5', '1', '5', '7']
df = pd.read_csv('a.csv', warn_bad_lines=True, error_bad_lines=False)
print (df)
Apple Banana
0 1 7
1 2 10
2 7 5
b'Skipping line 4: expected 2 fields, saw 3\nSkipping line 5: expected 2 fields, saw 4\n'
<强> a.csv 强>:
Apple,Banana
1,7
2,10
4,5,20
5,1,5,7
7,5