В моей задаче я пытаюсь определить DataFrame ( ex ) и сохранить в нем некоторые значения во время моих вычислений.
Ниже приведен краткий пример моей проблемы:
import pandas as pd
def main():
ex1 = pd.DataFrame(columns=['Timestamp','A'])
ex2 = pd.DataFrame(columns=['Timestamp','A'])
str1 = 'hello-1'
str2 = 'hello-2'
tcp_hash = { 1 : (ex1, str1), 2 : (ex2, str2) }
for idx in range(5):
try:
(df, str_idx) = tcp_hash.get(idx, None)
df.append({'Timestamp': idx, 'A': str_idx}, ignore_index=True)
tcp_hash[idx] = (df, str_idx)
except TypeError:
print('TCP Message: {} does not have a parser'.format(idx))
print(ex1)
print(ex2)
if __name__== "__main__":
main()
В результате моих ex я получаю:
TCP Message: 0 does not have a parser
TCP Message: 3 does not have a parser
TCP Message: 4 does not have a parser
Empty DataFrame
Columns: [Timestamp, A]
Index: []
Empty DataFrame
Columns: [Timestamp, A]
Index: []
вместо:
Timestamp A
0 1 hello-1
и
Timestamp A
0 2 hello-2
Если я правильно понимаю мою проблему, то я предполагаю, что ex внутри _tcp_hash_ является копией моего ex вместо "ссылки".
Как могЯ исправляю свой код?