如何将我的.dat文件转换为csv,以便以后在数据框中显示?



MyCode:

import csv

# read flash.dat to a list of lists
datContent = [i.strip().split() for i in open("./subject101.dat").readlines()]
# write it as a new CSV file
with open("./flash.csv", "wb") as f:
writer = csv.writer(f)
writer.writerows(datContent)

错误:

<ipython-input-10-6943df295ef7> in <module>()
7 with open("./subject101.csv", "wb") as f:
8     writer = csv.writer(f)
----> 9     writer.writerows(datContent)
TypeError: a bytes-like object is required, not 'str'

我的.dat文件

8.38 0 104 30 2.37223 8.60074 3.51048 2.43954 8.76165 3.35465 -0.0922174 0.0568115 -0.0158445 14.6806 -69.2128 -5.58905 1 0 0 0 31.8125 0.23808 9.80003 -1.68896 0.265304 9.81549 -1.41344 -0.00506495 -0.00678097 -0.00566295 0.47196 -51.0499 43.2903 1 0 0 0 30.3125 9.65918 -1.65569 -0.0997967 9.64689 -1.55576 0.310404 0.00830026 0.00925038 -0.0175803 -61.1888 -38.9599 -58.1438 1 0 0 0
8.39 0 NaN 30 2.18837 8.5656 3.66179 2.39494 8.55081 3.64207 -0.0244132 0.0477585 0.00647434 14.8991 -69.2224 -5.82311 1 0 0 0 31.8125 0.31953 9.61282 -1.49328 0.234939 9.78539 -1.42846 0.013685 0.00148646 -0.0415218 1.0169 -50.3966 43.1768 1 0 0 0 30.3125 9.6937 -1.57902 -0.215687 9.6167 -1.6163 0.280488 -0.00657665 -0.00463778 0.00036825 -59.8479 -38.8919 -58.5253 1 0 0 0
8.4 0 NaN 30 2.37357 8.60107 3.54898 2.30514 8.53644 3.7328 -0.0579761 0.0325743 -0.00698815 14.242 -69.5197 -5.12442 1 0 0 0 31.8125 0.235593 9.72421 -1.76621 0.17385 9.72528 -1.51894 -0.0399232 0.0340559 -0.002113 0.383136 -51.8336 43.7782 1 0 0 0 30.3125 9.58944 -1.73276 0.0929141 9.63173 -1.58605 0.280311 0.00301426 0.000148236 0.022495 -60.7361 -39.4138 -58.3999 1 0 0 0
8.41 0 NaN 30 2.07473 8.52853 3.66021 2.33528 8.53622 3.73277 -0.0023516 0.0328098 -0.00374727 14.8908 -69.5439 -6.17367 1 0 0 0 31.8125 0.388697 9.53572 -1.7241 0.157969 9.64994 -1.57952 0.00751315 -0.0104983 -0.020684 0.3154 -49.8144 43.167 1 0 0 0 30.3125 9.58814 -1.7704 0.0545449 9.63197 -1.63135 0.340997 0.00317498 -0.0203009 0.0112754 -60.4091 -38.7635 -58.3956 1 0 0 0
8.42 0 NaN 30 2.22936 8.83122 3.7 2.23055 8.59741 3.76295 0.0122691 0.018305 -0.0533248 15.5612 -68.8196 -6.28927 1 0 0 0 31.8125 0.3158 9.49908 -1.60914 0.233506 9.57411 -1.44418 -0.00382244 -0.0112166 -0.0259745 -0.297733 -51.8097 43.6453 1 0 0 0 30.3125 9.69771 -1.65625 -0.0608086 9.64699 -1.64647 0.340965 0.0126977 -0.0143027 -0.00282262 -61.5199 -39.3879 -58.2694 1 0 0 0
8.43 0 NaN 30 2.29959 8.82929 3.5471 2.26132 8.65762 3.77788 0.00323826 0.0122597 -0.0544735 15.4565 -68.818 -5.94087 1 0 0 0 31.8125 0.321072 9.76369 -1.45502 0.264123 9.5588 -1.33862 0.0117016 0.0177607 -0.0364899 -0.00706324 -50.3645 43.4065 1 0 0 0 30.3125 9.69551 -1.6556 -0.138014 9.64687 -1.61626 0.310598 -0.00608907 -0.0160236 0.00105049 -60.2954 -38.8778 -58.3977 1 0 0 0
8.44 0 NaN 30 2.33738 8.829 3.54767 2.27703 8.77828 3.7323 -0.0237041 -0.0315184 -0.0478827 15.1206 -68.5794 -6.05018 1 0 0 0 31.8125 0.323161 9.68891 -1.37729 0.250395 9.69457 -1.26258 0.018062 0.00287833 -0.0306693 0.951744 -51.7342 43.0515 1 0 0 0 30.3125 9.73474 -1.73242 -0.0599561 9.67704 -1.61621 0.340709 -0.0319725 -0.0539344 0.0155939 -60.6307 -38.8676 -58.2711 1 0 0 0
8.45 0 NaN 30 2.37142 9.055 3.39347 2.39786 8.89814 3.64131 0.019069 -0.022004 -0.0336473 14.8919 -68.7808 -6.28119 1 0 0 0 31.8125 0.244544 9.65097 -1.45604 0.236025 9.80025 -1.26219 -0.0427185 -0.00489113 -0.0195477 0.240777 -50.9304 43.2869 1 0 0 0 30.3125 9.70231 -1.61956 0.0933692 9.66183 -1.61627 0.295384 -0.0196432 -0.0399371 -0.000784916 -60.5171 -38.9819 -58.2733 1 0 0 0
8.46 0 NaN 30 2.33951 9.13251 3.54668 2.44371 8.98841 3.62596 0.02484 -0.0530542 -0.0111776 14.5769 -68.9936 -5.23831 1 0 0 0 31.8125 0.309236 9.61049 -1.84194 0.220234 9.72488 -1.30765 0.00658695 0.0139032 -0.0125399 -0.106291 -50.8104 43.6495 1 0 0 0 30.3125 9.73903 -1.54354 0.0546844 9.67713 -1.52545 0.355551 0.0137475 -0.010042 0.0177013 -61.2916 -39.6182 -58.1499 1 0 0 0
8.47 0 NaN 30 2.25966 9.09415 3.43015 2.42877 9.01871 3.61081 0.00762679 -0.0577595 -0.0190747 14.9037 -69.2257 -5.59174 1 0 0 0 31.8125 0.234051 9.57333 -1.80446 0.188783 9.67993 -1.48894 -0.0176479 -0.00012583 -0.0108329 0.135296 -51.2677 43.8977 1 0 0 0 30.3125 9.73624 -1.6568 -0.0218205 9.647 -1.60109 0.340819 0.00764948 -0.0139234 0.0144979 -60.8509 -39.0821 -58.1478 1 0 0 0
8.48 0 104 30 2.29745 8.9045 3.46984 2.39736 8.94335 3.53551 -0.0153703 -0.0658939 -0.0263224 15.131 -68.8051 -5.47408 1 0 0 0 31.8125 0.237283 9.49881 -1.688 0.218302 9.61953 -1.51952 -0.00499829 0.0105328 -0.00972645 0.216756 -50.1418 42.6747 1 0 0 0 30.3125 9.77736 -1.58207 0.0939061 9.63187 -1.52551 0.310386 0.0789 0.0022829 0.0203516 -61.5302 -38.724 -58.386 1 0 0 0
8.49 0 NaN 30 2.29531 8.79035 3.43171 2.42598 8.79209 3.50561 -0.013998 -0.0408748 -0.0296748 15.1348 -68.4804 -5.3549 1 0 0 0 31.8125 0.355556 9.68749 -1.57031 0.293497 9.58913 -1.48983 -0.0268919 -0.0183369 -0.0389307 -0.180154 -51.9253 43.6469 1 0 0 0 30.3125 9.69771 -1.65625 -0.0608086 9.61673 -1.52555 0.280196 0.0601758 0.0043882 0.00377953 -60.6221 -39.2053 -57.7797 1 0 0 0
8.5 0 NaN 30 2.44995 8.71431 3.54974 2.44016 8.70136 3.49069 -0.0280076 -0.0486606 -0.0301091 15.4776 -68.7238 -4.89853 1 0 0 0 31.8125 0.354014 9.53662 -1.60857 0.264056 9.61928 -1.41401 0.020264 0.0545802 -0.0325681 0.500715 -51.9493 43.7798 1 0 0 0 30.3125 9.62226 -1.76968 -0.0608784 9.63187 -1.54064 0.310435 0.0401132 -0.0356453 -0.00688931 -60.5181 -38.9803 -58.397 1 0 0 0
8.51 0 NaN 30 2.48078 8.86376 3.31878 2.45511 8.71633 3.46044 0.0410599 -0.0664342 -0.0214248 15.0175 -69.2337 -5.47741 1 0 0 0 31.8125 0.354413 9.68723 -1.60905 0.234436 9.64947 -1.3684 -0.0138768 -0.0163511 -0.052388 0.602398 -51.6175 43.7818 1 0 0 0 30.3125 9.73683 -1.5429 -0.0225213 9.67679 -1.60116 0.280121 0.0121161 -0.0068504 0.00748634 -60.7541 -38.1982 -58.5105 1 0 0 0
8.52 0 NaN 30 2.59174 8.90015 3.24334 2.48551 8.79158 3.41494 0.0709175 -0.0477612 -0.0304593 16.4541 -68.7624 -6.29888 1 0 0 0 31.8125 0.359187 9.76358 -1.45433 0.189413 9.67978 -1.38315 0.0277015 0.0204268 -0.0437956 0.742886 -52.2881 43.2927 1 0 0 0 30.3125 9.73734 -1.65712 0.0167824 9.67673 -1.60118 0.264986 0.042006 0.0221133 0.00468567 -60.9661 -38.8574 -58.1445 1 0 0 0
8.53 0 NaN 30 2.52044 8.93968 3.3576 2.53136 8.86676 3.41473 0.0346538 -0.0676665 -0.0315755 15.0108 -68.6834 -5.93431 1 0 0 0 31.8125 0.317541 9.72526 -1.57112 0.17448 9.72513 -1.41316 -0.0113218 0.0212036 -0.0454249 0.378403 -51.7228 43.9008 1 0 0 0 30.3125 9.66249 -1.65665 0.0160118 9.67685 -1.61627 0.295304 0.0160102 -0.0190713 0.0168348 -60.5186 -38.8716 -58.2721 1 0 0 0
8.54 0 NaN 30 2.52392 9.05417 3.43424 2.53098 8.88181 3.35429 0.0736048 -0.0329702 -0.0115635 14.6708 -68.3328 -6.27382 1 0 0 0 31.8125 0.316198 9.6497 -1.60962 0.220174 9.80048 -1.3981 0.0193936 0.00184005 -0.0905627 0.370278 -51.3817 43.2883 1 0 0 0 30.3125 9.73663 -1.58087 -0.0222877 9.69182 -1.57091 0.279943 0.012354 0.00046419 0.0083433 -61.409 -38.9587 -57.6468 1 0 0 0
8.55 0 NaN 30 2.44406 9.01581 3.31771 2.47082 8.86717 3.38459 0.0758924 -0.0195365 -0.0111 14.8973 -69.112 -5.93763 1 0 0 0 31.8125 0.272763 9.79914 -1.8045 0.204934 9.75521 -1.38303 -0.0109559 -0.00811978 -0.0535057 -0.19757 -51.48 43.8924 1 0 0 0 30.3125 9.77346 -1.69501 -0.0212016 9.63155 -1.55585 0.234809 0.0395772 0.00090798 -0.00969887 -60.6231 -39.2037 -57.9034 1 0 0 0
8.56 0 NaN 30 2.14121 8.7529 3.35255 2.39648 8.95835 3.41467 0.0363773 -0.0174136 -0.0299307 15.4592 -69.2563 -5.71416 1 0 0 0 31.8125 0.274652 9.64904 -1.72653 0.204658 9.74016 -1.4133 0.0639872 0.00813986 -0.0410638 0.133601 -51.1526 43.5301 1 0 0 0 30.3125 9.66299 -1.77088 0.0553154 9.58667 -1.58606 0.280551 0.00391491 -0.0511005 0.0204413 -59.8381 -39.6628 -58.6574 1 0 0 0
8.57 0 NaN 30 2.36714 9.01606 3.27807 2.4113 8.89786 3.44499 0.032675 0.0109087 -0.0315715 15.4647 -69.042 -5.48046 1 0 0 0 31.8125 0.238626 9.57437 -1.6495 0.189533 9.75533 -1.44339 0.0339449 0.00337114 -0.0500734 0.561897 -50.4998 43.9053 1 0 0 0 30.3125 9.69861 -1.69453 -0.0219722 9.60157 -1.57097 0.250153 -0.0024825 -0.0371737 0.0103145 -60.8494 -38.9767 -57.7754 1 0 0 0
8.58 0 NaN 30 2.48158 8.97758 3.31841 2.39661 8.98854 3.3995 0.0494165 0.0317889 -0.0131313 15.3622 -68.0598 -5.23724 1 0 0 0 31.8125 0.160309 9.6494 -1.72861 0.189245 9.71005 -1.44352 0.00747992 -0.00420446 -0.0441058 -0.405668 -52.0329 44.0111 1 0 0 0 30.3125 9.77346 -1.69501 -0.0212016 9.61673 -1.52555 0.280196 0.0132089 -0.0263304 0.0128207 -61.2995 -38.6348 -57.3967 1 0 0 0
8.59 0 104 30 2.40867 9.16819 3.35516 2.48704 9.03315 3.35401 0.0320149 0.0174556 -0.00630088 15.6885 -68.4006 -5.59184 1 0 0 0 31.8125 0.204242 9.68823 -1.53433 0.174474 9.71002 -1.39809 0.0201247 -0.00912644 -0.00825804 0.280342 -51.9318 42.6733 1 0 0 0 30.3125 9.62446 -1.77032 0.0163273 9.64682 -1.58603 0.295366 0.00404562 0.00579102 0.0217629 -61.0729 -39.5091 -58.6457 1 0 0 0
8.6 0 NaN 30 2.51883 9.28013 3.24097 2.56265 9.0779 3.33873 0.00653855 0.0412912 -0.0351101 15.3468 -68.9219 -5.825 1 0 0 0 31.8125 0.315353 9.7624 -1.64872 0.188862 9.64968 -1.44369 0.00779826 -0.0554575 -0.0263168 0.738912 -52.1763 43.2928 1 0 0 0 30.3125 9.65989 -1.73195 -0.0607267 9.64696 -1.54061 0.32549 0.0276717 -0.00225061 0.0319903 -60.3995 -38.8871 -57.4068 1 0 0 0
8.61 0 NaN 30 2.36955 9.16815 3.31608 2.53225 9.04791 3.33883 -0.031668 0.0348366 -0.032475 15.3403 -67.826 -6.39176 1 0 0 0 31.8125 0.274553 9.61139 -1.72641 0.188574 9.6044 -1.44382 -0.00547973 -0.0128856 0.00972958 0.255914 -51.379 43.4091 1 0 0 0 30.3125 9.66138 -1.65633 -0.022591 9.61684 -1.55576 0.310563 -0.00647589 -0.0296264 0.0182522 -60.744 -38.6463 -58.0203 1 0 0 0
8.62 0 NaN 30 2.48372 9.09173 3.35654 2.48843 9.07856 3.47471 -0.0163176 -0.011364 -0.0195608 15.7884 -68.9445 -6.06176 1 0 0 0 31.8125 0.31953 9.61282 -1.49328 0.234076 9.64956 -1.42885 -0.00685788 -0.0266579 0.00261903 0.00164464 -50.5872 43.2837 1 0 0 0 30.3125 9.58394 -1.73115 -0.1001 9.64683 -1.54065 0.29522 -0.0259621 -0.0250197 0.00485252 -60.9646 -38.752 -57.772 1 0 0 0

不确定 1 0 0 0 标签是什么以及到目前为止如何处理它们,所以如果您有建议,请告诉我。

我想将其转换为 CSV,以便以后可以使用下面的代码在数据帧中显示和处理数据

import pandas as pd
def your_func(row):
return row['x-momentum'] / row['mass']
columns_to_keep = ['#time', 'x-momentum', 'mass']
dataframe = pd.read_csv("./flash.csv", usecols=columns_to_keep)
dataframe['new_column'] = dataframe.apply(your_func, axis=1)
print dataframe

我之前的回答是不正确的。我测试了您的代码并发现了问题。代替open("./flash.csv", "wb"),请使用:

open("./flash.csv", "w")

显然 csv 编写者期望在 2.7 中采用二进制模式,但期望在 python 3+ 中采用文本模式

最新更新