我有一个.txt文件,其中包含经过地理标记的推文。信息以“ |”定界字符。信息(可以看作是列)是日期时间,纬度,经度和tweet_text。
Date_time|latitude|longitude|tweet_text
Mon Jan 01 09:09:57 +0000 2018|-37.8140362|144.9644232|terima kasih 2017 yang ohsem. semoga 2018 akan lebih baik lagi.-selamat tahun baru rakan-rakan…
Mon Jan 01 09:15:54 +0000 2018|-37.81639|144.9655|we love christmas and new year proposals! happy new year to everyone celebrating love this year…
Mon Jan 01 09:42:08 +0000 2018|-37.818|144.985|@michaelpaynter entertaining everyone at yarra park nye event #melbourne| #nye #music…
Mon Jan 01 09:45:16 +0000 2018|-37.818|144.985|@emilyurbandiva and brother @jwilliamsimusik entertaining everyone at yarra park nye eventâ€|¦
最初,我使用
data = pd.read_csv('MelbCBD_scs2018_new.txt',sep="|", header=None)
,但是只要tweet_text具有'|',它就会引发解析错误。
我尝试手动清理tweet_text,但是对于大文件来说,这太麻烦了。因此,我更改了read_csv的参数参数。
data = pd.read_csv('MelbCBD_scs2018_new.txt',sep="|", header=None, quoting=csv.QUOTE_NONE,error_bad_lines=False)
但是它显示以下警告,并跳过了我不希望的那些行(基本上是推文)。
b'Skipping line 340: expected 4 fields, saw 5
理想情况下,我希望找到一个在遇到3个'|'后删除任何特殊字符的代码.txt文件每一行中的字符,即tweet_text列,并将其解析为.csv文件,而无需跳过任何行。
答案 0 :(得分:1)
因此,只需通过指定列名来指定列数即可。
defaultNavigationOptions: ({ navigation }) => ({
headerLeft: () => {
const { routeName } = navigation.state;
let iconName;
if (routeName === "HomeChild1") {
iconName = "ios-arrow-back";
} else if (routeName === "HomeChild2") {
iconName = "ios-arrow-back";
}
....
return (
<Icon
name={iconName}
size={30}
style={{ marginStart: 25 }}
color="#FFF"
backgroundColor="#FFF"
onPress={() => navigation.goBack()}
/>
);
...
现在,这将返回每行而不跳过,并将其存储在名为“ data”的数据框中。